본문 바로가기

반응형

Machine Learning & Deep Learning

(10)
[Chapter2] An understanding of data ::: 모델을 학습할 때 영향을 주는 것- y = ax+b라는 식이 주어졌을때, 주어진 값 x는 독립변수, 주어진 값 y는 종속변수. 여기서 a와 b는 알고리즘을 통해 최적값을 찾는다.- 하나의 data instance (실제 데이터)는 feature vector로 표현- 차원의 저주 (curse of dimensionality): 데이터의 차원이 증가할 수록 (즉, feature가 증가할 수록) 데이터를 표현하는 공간이 증가* 희박한 벡터가 증가 (값이 없는 feature가 늘어남)* 샘플데이터가 급속도로 늘어남* 데이터 분포나 모델 추정의 어려움이 생김 ::: Feature별로 data의 유형이 다름- continuous VS discrete- Numeric Types (integer, real-nu..
[Chapter1] Types of Machine Learning ::: 회귀/분류/군집1. 회귀 - 데이터 (X,Y)가 주어졌을 때, X'의 숫자 Y'를 예측 (continuous Y)2. 분류 - 데이터 (X,Y)가 주어졌을 때, X'의 Y'을 분류 (Discrete Y)3. 군집 - 데이터 (X)가 주어졌을 때, X를 N개로 나누는 것 ::: Supervised VS Unsupervised1. Supervised : label이 주어진 것2. Unsupervised: label이 주어지지 않은 것 ::: 가상환경(Virtual Environment)- 프로젝트 진행 시 필요한 패키지만 설치하는 환경- 기본 인터프리터 + 프로젝트 종류별 패키지 설치- 대표적인 도구로 virtualenv와 conda가 있음* virtualenv: 가장 대표적인 가상환경 관리 도구 (..
04. 배치정규화 (Batch Normalization) !! Natation 지금까지 gradient vanishing을 풀기 위해 한 일 1) 활성함수를 시그모이드 -> ReLU로 교체 2) 초기화를 잘 하기 그렇다면 Gradient exploding 문제는? learning rate를 낮게 조절하면 된다. (주로 0.001, 0.01) 하지만 낮은 learning rate에 의해 학습 수렴이 매우 느리다. !! 배치정규화 (Batch Normalization) - 다양한 초기화 전략은 활성함수의 출력값을 정규분포로 만들기 위해 한 작업 - 그럼 그냥 출력값을 정규화 하면 되지 않을까? + 배치 단위로 정규화를 진행 (계산이 간편함) + 각각 차원을 독립으로 보고, 차원마다 정규화를 따로 진행 * N은 배치사이즈, D는 차원 - 문제점 1) 평균과 분산을 ..
03. 정규화 (Regularization) Regularization - 모델의 일반화 오류를 줄여 과적합을 방지하는 기법을 총칭 + 머신러닝 특히 회귀분석에서 매우 많이 쓰인다. + 딥러닝 또한 과적합을 방지하기 위해 regularization 기법을 사용함 1. L1, L2 regularization - 머신러닝에서 가장 일반적인 regularization 기법 - Loss 뒤에 weight에 대한 패널티 텀을 부여 2. Dropout - Forward-pass시 랜덤하게 뉴런의 연결을 끊어버리는 방법 + 끊어진 길로는 정보(gradient)가 흐르지 않음 + 간단한 구현 : 뉴런의 결과값에 0을 곱하면 됨 + 보통 0.5의 확률로 dropout을 적용 - 장점 : Dropout은 앙상블의 근사(approximation)적인 방법 * 앙상블 ..
03. 초기화 1. Weight 초기화 전략 - 네트워크를 만들 때 weight의 초기화도 매우 중요한 요소 - 만약 weight를 모두 0으로 초기화 하면, 모든 뉴런이 같은 gradient를 계산하게 되어 모든 weight 값이 똑같이 변하게 됨 즉, 학습되지 않는다. - 초기값은 0에 근접해야 한다. 너무 큰값으로 초기화 하면 학습시 그라디언트가 매우 커져서 폭발하기 때문 (gradient exploding) 1) 랜덤 값으로 초기화 + 예를들어 실험세팅 : layer 10개와 tanh 활성함수를 사용하는 네트워크 + 모델1 : 평균이 0, 표준편차는 0.01인 가우시안 분포에 의해 랜덤하게 초기화 결과 : 레이어를 통과 할 수록 결과값이 0으로 수렴. 즉, backprop시 gradient가 0 + 모델2 : ..
01. 활성함수(activation function) - Sigmoid, ReLU - 활성함수는 네트워크에 비선형성(nonlinearity)을 추가하기 위해 사용됨 + 활성함수 없이 layer를 쌓은 네트워크는 1-layer 네트워크와 동일하기 때문에 활성 함수는 비성형함수로 불리기도 한다. + 멀티레이어 퍼셉트론을 만들 때 활성함수를 사용하지 않으면 쓰나마나이다. 1. 시그모이드 함수 (Sigmoid Function) - 결과값이 [0,1] 사이로 제한됨 - 뇌의 뉴런과 유사하여 많이 쓰였음 - 문제점 1) 그라디언트가 죽는 현상이 발생한다 (Gradient vanishing 문제) gradient 0이 곱해 지니까 그다음 layer로 전파되지 않는다. 즉, 학습이 되지 않는다. 2) 활성함수의 결과 값의 중심이 0이 아닌 0.5이다. 3) 계산이 복잡하다 (지수함수 계산) !! G..
00. 뉴럴 네트워크 - 입력층, 은닉층, 출력층으로 이루어진 Multi-layer Perceptron - 각 층은 활성함수(activation function)가 존재 - 뉴럴 네트워크는 back propagation + SGD에 의해 학습된다.
클러스터링 평가하기 (Clustering Evaluation) Goal : 클러스터링 간에 비교하여 적절한 클러스터 개수를 구하기 1. Elbow method - K-means의 경우 cost function이 존재 - 이걸로 평가하면 안될까? 문제가 있다! => 클러스터의 개수가 증가할수록 centroid와 데이터 포인트 간의 거리가 작아져, cost가 계속해서 감소한다. => 그렇다면, 클러스터 개수가 많을 수록 좋은건가? 그것도 아니다. - 다음은 cost의 마이너스를 붙여서 계속 증가하는 그림이다. 의미는 똑같다. - 그래프를 보면 처음에는 급격히 cost가 감소하다가 어느 순간 정체 된다. - 감소세가 정체되는 지점에서 클러스터 개수를 정하자. 적당히 끊자! - 이를 elbow method라고 한다. 2. Silhouette - 실루엣 값은 한 클러스터 안..