본문 바로가기

🤖AI

(32)
[딥러닝] CNN (Convolution Neural Network) 등장 배경Fully-Connected Layer의 구조적 문제로 인한 문제 발생이미지는 (가로, 세로, 채널)의 형태를 가지는 3차원 배열FC Layer의 입력은 항상 1차원 배열FC Layer는 모든 값들이 완전 연결되어 있으므로 전체 픽셀의 모든 관계를 다 계산해야 한다.따라서 이미지의 3차원 배열 형상을 무시하고 1차원 배열로 flatten 해서 학습한다. 이미지의 전체적인 관계를 고려하지 못해서 변형된 데이터에 매우 취약해지고(Topology)이미지의 특정 픽셀은 주변 픽셀과 관련이 있다는 특성을 잃어버린다.(Locality)따라서 이미지를 조금만 변형해도 완전히 다른 Obejct로 인식하게 된다.모든 이미지마다 학습해야 하므로 Layer의 크기가 커지고, 변수의 개수도 많아지며 학습 시간이 증가..
[딥러닝] Optimization Optimization 알고리즘은 신경망 모델이 빠르게 학습할 수 있게 한다. Loss function을 통해 구한 차이를 사용해 기울기를 구하고 네트워크의 parameter인 W와 b의 학습에 어떻게 반영할 것인지를 결정하는 방법이다. 1. Gradient Descent Algorithm Batch Gradient Descent (BGD) batch는 모든 data를 의미한다. 즉, 모든 데이터를 한꺼번에 계산해서 weight와 bias를 얻는 방법이다. 따라서 매끈하게 cost함숫값이 줄어든다. 한 step에 모든 학습 데이터를 사용해서 학습이 오래 걸린다는 단점이 있다. Mini-batch Gradient Descent (MGD) 전체 데이터셋을 여러 개의 mini-batch로 나누어 한 개의 mi..
[딥러닝] Overfitting을 완화시키는 방법(2) - Dropout Dropout이란? Layer에 포함된 weight들 중에서 일부만 참여시키는 방법이다. Random하게 일부 뉴런을 0으로 만드는 것이다. 일정한 mini-batch 구간 동안 dropout된 망에 대한 학습을 한다. 학습이 끝나면 다시 무작위로 다른 뉴런 들을 dropout하면서 반복적으로 학습한다. Dropout의 기대효과 - Voting효과 mini batch구간 동안 dropout된 각자의 망에 fitting이 되면서 평균 효과를 얻을 수 있다. - Co-adaptation(동조화) 방지 특정 뉴런의 bias나 weight가 큰 값을 갖게 되면 그것의 영향이 커지면서 다른 뉴런들의 학습 속도가 느려지거나 학습이 제대로 진행되지 못한다. dropout을 이용하면 특정 뉴런의 weight나 bias..
[딥러닝] Overfitting을 완화시키는 방법(1) - Regularization Regularization이란? Weight가 너무 큰 값들을 가지지 않도록 하는 것이다. Weight가 너무 큰 값을 가지게 되면 아래 이미지와 같이 과하게 구불구불한 형태의 함수가 만들어진다. 즉, Regularization은 모델의 복잡도를 낮추기 위한 방법이다. Regularization하는 방법 단순하게 cost function이 작아지는 쪽으로 학습하면 특정 가중치 값들이 커지면서 결과를 나쁘게 만들기 때문에 cost function을 바꾼다. L1 Regularization 기존의 cost function값에 weight parameter의 평균을 더해준다. cost function을 작게 만드는 방향, 각각의 weight parameter를 작게 만드는 방향으로 학습을 하게 된다. sgn함..
[딥러닝] Bias와 Variance Bias train data로 만들어진 모델이 train data와 얼마나 잘 부합하게 만들어졌는가 즉, train data와의 error값이 얼마나 작은지를 의미한다. Variance train data는 잘 학습이 되었더라도 실제 data에 대해서 모델에 적용시켜봤을 때 얼마나 error가 발생하는지를 의미한다. bias와 variance는 tradeoff관계다. bias를 줄이려면 variance가 늘어나고 bias를 늘리면 variance를 줄일 수 있다. deep learning에서는 둘다 줄일 수 있다. Underfitting 만들어진 모델이 너무 단순해서 실제 data의 복잡성을 잘 표현하지 못하고 있다. 너무 간단한 calssifier Overfitting Overfiting이란 train..
[딥러닝] 활성화 함수 (Activation function) 입력 신호의 총합을 출력 신호로 변환하는 함수를 활성화 함수(Activation function)라고 한다. 활성화 함수로 주로 비선형(non-linear) 함수를 사용한다. 선형(linear) 함수만 이용해서 deep하게 신경망 모델을 구현해도 결국 선형함수이다. 선형함수를 비선형함수로 바꾸기 위해서 활성화 함수를 사용하는 것이다. 활성화 함수들을 하나씩 살펴보자. 0. Step function 0보다 크면 1, 작으면 -1의 함수값을 갖는 함수 1. Sigmoid 0 ~ 1사이의 함수값을 갖는다. output이 0 또는 1인 binary classification에서는 sigmoid를 출력 뉴런에 사용하는 것이 일반적이다. backpropagation을 수행할 때 미분을 사용하는데 그래프가 뾰족하면 ..
[딥러닝] Logistic Regression 1. Linear Regression vs Logistic Regression linear regression 입력과 출력 간의 관계를 함수로 modeling하는 방법 y=Wx+b -> 출력값이 continuous한 값 logistic regression 출력 값을 true/false 또는 0/1로 회기를 통해 알아낸다. 출력 값은 연속적인 값이 아니지만 함수를 modeling할 때는 연속적인 함수를 사용한다. 2. Logistic Regression Logistic Regression은 이진 분류를 위한 알고리즘이다. 지도 학습에서 출력될 레이블 y가 0이나 1일 경우 사용한다. linear regression에 sigmoid함수를 적용한 것이다. 출력 결과는 항상 0에서 1 사이의 확률 값이다. 3...
End-to-end deep learning input을 딥러닝 모델에 넣으면 바로 원하는 output이 나오는 deep learning 즉, 전처리와 후처리가 필요없는 deep learning