본문 바로가기
연구/머신러닝

머신러닝 공부를 본격적으로 해보자

by 굿- 2020. 11. 13.
반응형

머신러닝의 학습 방법에 따른 분류 

1. Supervised Learning: 정답이 주어짐 

ex) 이미지 인식, 음석 인식 

2. Unsupervised Learning: 정답이 주어지지 않음 

ex) 입력 데이터의 자동 분류 

3. Reinforcement Learning: 답이 아닌 reward가 주어짐 

ex) Q학습, DQN 



머신러닝 방법의 원리에 따른 분류 (대상으로 하는 문제를 한정하지는 않는다) 

1. 기호처리: 기호 처리, 기호 조작 기술을 기초로 한 학습방법 

ex) 귀납 학습, 교시 학습, 진화연산 등 

2. 통계적 처리: 학습 데이터를 확률적인 데이터라 가정하고 이를 중심으로 수학적 처리를 시행하여 학습하는 방법 

ex) 통계적 방법(회귀분석, 클러스터분석, 주성분 분석 등), 신경망, 딥러닝 



인공신경망-통계처리에 기반을 둔 머신 러닝으로, 생물의 신경세포 회로를 모델화한다(생물의 신경세포 동작에서 힌트를 얻은 움직임!) 

신경망은 신경세포 모델인 인공신경을 상호 결합한 망이다. 인공 뉴런은 여러 개의 인풋으로 일정한 처리를 시행한 다음 아웃풋을 출력한다. 



딥러닝? 

다른 머신러닝과의 차이점은 아래와 같다. 

1. Nonlinear activation function 

2. Multiple layers: hidden layer가 2개 이상인 neural network를 가지면 딥러닝이다. 



딥러닝의 문제점 

딥러닝 레이어를 무한정 많이 만들면 아래 문제가 생긴다. 

1. Over-fitting - 문제는 간단한데 모델이 복잡하거나, 주어진 데이터는 얼마 없는데 모델이 복잡한 경우 생김. 

 -> 랜덤하게 뉴럴을 끊는 Dropout을 통해 모델을 단순하게 만들 수 있다. 

2. Gradient shift - 러닝 할 때 미분이 필요한데 (학습량 = 미분 값*출력 값), 대부분 미분 값이 0인 문제가 있다. 

 -> 이결 해결하는데에 ReLU와 LSTM이 나온 것 같다. 나중에 더 알아보자. 



가장 기본적인 neural network: Vanilla neural network 

인공지능 함수를 가장 간단한 1차 함수로 모델링한 것 



Convolution neural network (CNN) 

뉴럴 네트워크를 영상처리에 특화시킨 것. 

영상분석의 기초는 서로 다른 크기의 feature들을 만드는(찾는) 것이다. 방법은 아래와 같다 

1. 필터 사이즈를 점점 크게 만들기 

2. 영상 사이즈를 점점 작게 만들기 

이 두가지 방법을 다 쓴 게 CNN이다. convolution과 pooling을 반복적으로 수행하면서 불변하는 feature를 찾고, 그 feature를 입력 데이터로 fully-connected 신경망에 보내 classification을 수행한다. 크게 아래 두 가지 단계가 있다. 

1. feature extraction - convolution과 pooling의 반복 

2. classification - filter layer, softmax layer에서 classification 수행 ?? 이게 무슨말?? 



아래는 CNN 파라미터다. 

1. convolution filter 개수 

2. filter 사이즈 

3 padding 여부 

4. stride 



[용어] 

convolution: 필터링 연산 

filter(kernal) 

channel - RGB 채널, Gray 채널 

padding: convolution 레이어에서 filter와 stride의 작용으로 feature map이 인풋보다 작아지는데, 이를 방지하기 위한 방법. 인풋 이미지에 zero padding을 더한다.  

stride: 필터를 몇 픽셀 이동시킬 것인지 정하는 것 

pooling: 이미지 크기 유지하고 fully connected 연산을 계속하면 연산량이 너무 많으니까 적당히 줄이면서 feature 추출은 잘 되게 하는 방법. max pooling, average pooling, min pooling이 있고, CNN에선 max pooling을 주로 쓴다. 



Recurrent neural network (RNN) 

입력이나 출력에 시간 순서가 있을 때 쓴다. 

1. 입력이 들어가면 출력이 하나 나온다. 

2. 입력이 들어가면 출력이 순차적으로 나온다. - image caption generation 

3. 입력이 순차적으로 들어가면 출력이 나온다. - sementic classification 

4. 입력이 순차적으로 들어가면 출력이 순차적으로 나온다 - machine translation

댓글