본문 바로가기

AI14

[ML을 위한 수학] 02. 이상형 확률분포 & 연속형 확률분포 이산형 확률분포 베르누이 시행(Bernoulli trial) 임의의 결과가 '성공(1)' 또는 '실패(0)'의 두가지 중 하나인 실험 ex) 동전 던지기, 소비자가 물건 구입 여부등 가능한 결과가 두가지라면 되는 것. 이항분포(Binomial Distribution) 성공확률이 p인 베르누이 시행을 독립적으로 n번 시행했을 때 성공한 횟수의 분포 ex) 동전을 n번 던져 앞면의 횟수 기대값(Expectation) : np 분산(Variance) : np(1-p) 다항분포(Multinomial Distribution) 다하시행 : 1회의 시행결과로 나올 수 있는 범주가 3개 이상 되는 확률 실험. K개 범주의 다항 시행을 n번 반복했을 때, 각 범주가 나타나는 횟수의 분포. ex) 주사위 n번 던져 각 눈.. 2020. 3. 21.
[ML을 위한 수학] 01. 통계학 & 확률 통계학이란 모집단(Population) : 연구의 대상이 되는 모든 개체들을 모은 집합 일반적으로 모집단 전체를 대상으로한 분석은 불가능 표본(Sample) : 모집단의 일부분 모수(Parameter) : 수치로 표현되는 모집단의 특성. 통계량(Statistic) : 표본의 관측값들에 의해서 결정되는 양. 추정량(Estimator) : 모수를 추정하고자 하는 목적을 지닌 통계량. 표본평균 표본분산 표본분산 n - 1 로 나누는 이유는 분산을 계산할 때 모평균이 아닌 표본 평균을 사용했기 때문에 오차를 줄이기 위해서이다. 자료의 종류 수치형(양적자료) 연속형(몸무게, 키등) 이상형(전화 통화 수등) 범주형(질적자료) 순위형(학점) 명목형(성별) 자료에 따라 행하는 분석이 달라진다. 자료의 요약 - 수치 중.. 2020. 3. 21.
[ML] 05. 과적합(Overfitting) Overfitting이란 복잡한 모형일수록, 데이터가 적을수록 과적합이 일어나기 쉬움. 아래 그림은 회귀분석에서 고차항을 넣었을 때 만들어지는 직성 과적합은 data science 뿐만 아니라 AI전반적으로 매우 큰 이슈. Variance-Bias Trade off 분산(Var)과 편파성(Bias)의 트레이드오프(Tradeoff) 모형 f^(x)로 모집단의 전체 데이터를 예측할 때 발생하는 총 error를 계산(MSE)하면 reducible error & irreducible error에 의존. reducible error : f^ 와 f 의 차이 -> 적절한 모델을 이용하면 f^의 정확도를 높일 수 있다. irreducible error : f(x)와 Y의 차이 : 엡실론의 존재에의해 적확히 예측할 수.. 2020. 3. 20.
[ML] 04. 모형의 적합성 평가 및 실험 설계 모형의 적합성 평가 학습 집합의 MSE는 복잡한 모형일수록 감소하지만, 학습 데이터가 아닌 또 다른 데이터(검증 데이터)의 MSE는 일정 시점 이후 증가 간단한 모형일수록 under fitting이 일어남. 따라서 적당한 분산과 편파성을 가진 모델을 찾아야 함. 데이터 분할 과적합(overfitting)을 방지하기 위해 전체 데이터를 학습 데이터(training), 검증 데이터(validation), 테스트 데이터(test)를 나누며 보통 비율은 5:3:2로 정함. training data : 모형 f를 추정하는데 필요 validation data : 추정한 모형 f가 적합한지 검증, validation을 보고 hyper parameter을 설정한다. test data : 최정적으로 선택한 모형의 성능 .. 2020. 3. 20.
[ML] 03. 딥러닝 주요 모델 Deep Learning main Model Deep Learning이란? Neural Network : 입력, 은닉, 출력층으로 구성된 모형으로서 각 층을 연결하는 노드의 가중치를 업데이트하면서 학습 Overfitting이 심하게 일어나고 학습시간이 오래 걸림 But, 다양한 layer을 통해 복잡한 데이터의 학습이 가능하도록 한다.(graphical representation learning) 알고리즘 및 GPU 발전이 deep learning의 부흥을 이끌었다. 다양한 형태로 발전(CNN, RNN, AutoEncoder등) 다양한 분야로 발전(Object detection, Image Resolution, Style transfer, colorization등) 네트워크의 구조의 발전(ResNET, .. 2020. 3. 16.
[ML] 02. Machine Learning 종류 선형 회귀분석(Linear Regression) 독립변수와 종속변수가 선형적인 관계가 있다라는 가정하에 분석. 직선을 통해 종속변수를 예측하기 때문에 독립변수의 중요도와 영향력을 파악하기 쉬움. 의사결정나무(Decision Tree) 독립 변수의 조건에 따라 종속변수를 분리(비가 내린다 -> 농구를 하지 않는다) 이해하기 쉬우나 overfitting(과적합)이 잘 일어남. Overfitting 이란, 학습 데이터에 대해서는 좋은 결과를 내지만, 학습에 사용하지 않은 실제 테스트 데이터에 대한 결과는 오히려 더 나빠지는 것. Decision Tree 에서 Tree가 커지면 커질수록 점차 세밀한 분류가 가능해지지만, 학습 데이터에 특화될 가능성도 같이 커진다. KNN(K-Nearest Neighbor) 새로.. 2020. 3. 16.
[ML] 01. 지도학습, 비지도학습, 강화학습 지도학습(Supervised learning) y = f(x) 에 대하여 입력 변수와 출력 변수의 관계에 대하여 모델링 하는 것(Y에 대하여 예측 또는 분류) 회귀(regression) : 입력 변수에 대해서 연속형 출력 변수 Y를 예측 분류(classification) : 입력 변수에 대해서 이산형 출력 변수 Y를 예측 ex) 성별, 흡연 여부등 비지도학습(Unsupervised learning) 출력 변수가 존재하지 않고, 입력 변수간의 관계에 대해 모델링 군집 분석 - 유사 데이터끼리 그룹화 주성분 분석(PCA - Principal Component Analysis) - 독립변수들의 차원을 축소화 고차원의 데이터를 저차원의 데이터로 환원시키는 기법. 강화 학습(Reinforcement learnin.. 2020. 3. 16.
[ML] 00. Machine Learning Curriculum 커리큘럼 Machine Learning 개념 회귀분석 - 통계학, 회귀분석, PCA ML 알고리즘 - KNN, LDA, SVM, DecisionTree Ensemble Learing - Bagging, Boosting, RandomForest, Stacking Clustering - Kmeans, Hierachical, DBSCAN Class imbalacnced problem - Oversampling, Undersampling Machine Learning이란 기계 학습 또는 머신 러닝은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야 - 위키백과 데이터(x)를 가지고 무엇을(y) 예측하는 것 1.y = f(x) 에서 알고리즘(함수)를 만드는 것. 2.주어진 .. 2020. 3. 16.
딥러닝: 04. Logistic Classification(로지스틱 회귀) 1.Logistic(regression) classification¶ Binary classification - True(1)/ False(0) 를 판단한다 logistic fnc)(시그모이드 함수) : H(X) = 1 / 1 + e^(-W^T*X) 시그모이드 함수를 사용했기 때문에 cost function 의 모양이 변한다. cost function for logistic¶ Minimize cost - Gradient decent algorithm¶ In [11]: import tensorflow as tf import numpy as np In [12]: xy = np.loadtxt('./dataset/pass.csv', delimiter=',', dtype=np.float32) In [13]: x .. 2019. 7. 30.
딥러닝: 03. 다중 선형 회귀(Multi Variable linear regression) In [6]: import numpy as np import tensorflow as tf In [14]: xy = np.loadtxt('./dataset/data-01-test-score.csv',delimiter=',' , dtype = np.float32 ) x = xy[:,0:-1] y = xy[:,[-1]] In [16]: print(x.shape, x, len(x)) print(y.shape, y, len(y)) (25, 3) [[ 73. 80. 75.] [ 93. 88. 93.] [ 89. 91. 90.] [ 96. 98. 100.] [ 73. 66. 70.] [ 53. 46. 55.] [ 69. 74. 77.] [ 47. 56. 60.] [ 87. 79. 90... 2019. 7. 30.
딥러닝: 02. 경사하강법(Gradient descent algorithm) Gradient descent algorithm¶ cost(W,b) fnc. 의 최소값을 찾는다. 어떤 점에서든 시작할 수 있다. 조금씩 W를 바꿔 최적의 cost(W,b)를 찾는다. In [29]: import tensorflow as tf import matplotlib.pyplot as plt In [30]: X = [1,2,3] Y = [1,2,3] W = tf.placeholder(tf.float32) hypothesis = X * W cost = tf.reduce_mean(tf.square(hypothesis - Y)) sess = tf.Session() sess.run(tf.global_variables_initializer()) W_val = [] cost_val = [] for i in .. 2019. 7. 30.
딥러닝 : 01. Tensorflow의 정의 1. Tensorflow 란?¶ tensorflow는 google에서 만든 딥러닝 프로그램을 쉽게 구현할 수 있는 라이브러리이다. 기본적인 언어를 지원하지만 python을 최우선으로 한다. 대부분의 편리한 기능들이 python library로만 구현되어 있다. tenor란 딥러닝에서 데이터를 표현하는 방식을 뜻하고 flow는 흐름을 뜻한다. tensor의 이해가 매우 중요하다. tensorflow의 연산은 dataflow graph로 이루어진다. 즉 텐서 형태의 데이터들이 딥러닝 모델을 구성하는 연산들의 그래프를 따라 흐르면서 연산한다고 보면 되겠다. tensorflow는 가장 인기있는 딥러닝 라이브러리이고 딥러닝을 사용하는데 더욱 편리하게 해준다. In [1]: import tensorflow as t.. 2019. 7. 26.