Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준
- clean architecture
- 소켓통신
- 청년인재
- NEXTERS
- 코틀린
- 자바
- 넥스터즈
- ubuntu18.04
- sending 404
- 이것만보면돼
- cuda-10.2
- IT연합동아리
- DataBinding Error
- 인공지능
- flownet
- ubuntu
- 빅데이터청년인재
- 딥러닝
- 안드로이드
- kotiln
- Android
- 빅데이터청년캠퍼스
- nvcc
- 머신러닝
- 빅데이터
- resample2d_cuda
- utuntu
- 알고리즘
- 데이터청년캠퍼스
Archives
- Today
- Total
보초의 코딩일기장
데이터 청년 캠퍼스 2일차 본문
2019.07.02 -2회차
- 통계학에서의 회기는 단순이 x에 대한 y의 식을 새우는 것이라면 ML에서의 회기는 Gradient Descent로 데이터를 표현하는 것
- Overfitting: 너무 많은 트레이닝이 되었음 / Underfitting : 너무 적게 트레이닝 되었음
- 선형회귀는 오버피팅이 너무 많이 일어나게 됨. 그래서 분산이나 편차(L1,L2)를 조절하여 정규화를 적용한다.
- SVM에서 커널을 적용하여 복잡한 데이터에 대해서 분류를 가능하게 만들었음.
- 앙상블: 여러 모델이 존재할 때 그 모델의 결과값을 하나로 만들어서(hard/soft voting) 하나의 output으로 만듦.
- Dicision Tree : 데이터의 불순도를 계산하여 데이터를 나눠 분류하면 트리모양을 형성하게 됨.
- 그 트리모양을 하나의 output으로 만들어낸다면 그것이 Random Forest
Deep Learning
- 딥러닝은 블랙박스 모델로 의사결정의 이유를 알 수가 없음.
- 딥러닝은 설명력의 부족으로 인해서 사람을 대신하지 않고 사람의 보조로 쓰인다.
- 최근에는 딥러닝이 의사결정을 내린 이유를 설명하기 위해서 다양한 연구가 진행중임.
Perceptron
- input과 weight를 곱한 뒤 활성 함수를 적용하여 갓이 0보다 크면 1, 0보다 작으면 -1를 출력하는 구조
- Perceptron은 AND와 OR은 계산이 가능했지만 XOR은 계산이 불가능하다. 즉, 퍼셉트론은 선형분류가 가능하지만 비선형분류는 불가능 하다는 결론이 나옴.
- Multi-Layer Perceptron: Hinton이 히든레이어라는 중간레이어를 추가하여 선형 분류 판별선을 여러개 그리는 효과를 얻음으로써 XOR문제를 해결하였다.
- 과거에는 sigmoid function을 많이 사용하였지만 현재는 ReLU를 많이 사용한다.
신경망의 목표는 최적의 매개변수(가중치와 편향)을 찾는 것이다. 선형과 비선형분류가 가능해졌지만 시간이 너무 오래걸리는 문제점이 발생하였음.
BackPropagation
- 앞서 경사 하강법의 계산량이 많아지는 것을 해결하기 위해 제안됨.
-> 현재 딥러닝은 새로운 구조가 등장하는 것보다는 학습을 더 빠르고 정확하게 하도록 연구 중이다.
Drop out을 이용하여 overfitting을 방지할 수 있음.
Gradient Descent
- 모든 데이터를 한번에 학습하면서 점차 에러를 줄이는 방법으로 학습해야 Loss Function을 올바르게 학습할 수 있음.
Convolution Neural Network
- DNN은 사진은 1차원이 아니기 때문에 사진 데이터를 1차원으로 바꿔서 한 줄로 세우는 과정에서 정보의 손실이 발생한다.
- 이미지의 특징을 추출하기 위해 Filter를 사용하여 Convolution을 한다
- Stride: 필터 적용 간격
- Padding: 컨볼루션 레이어에서 Filter와 Stide의 작용으로 Feature Map의 크기가 작아지는데 이를 방지하기 위해서 사용한다. 보통 외곽선을 0을 넣어서 크기를 맞추어준다. 이로인해 이미지의 외각을 인식하는 학습 효과를 가져올 수 있다.
- Poling: 컨볼루션 레이어의 출력 데이터를 입력으로 받아서 출력 데이터의 크기를 줄이거나 강조하는 용도로 사용한다. Max Poling은 정해진 pooling 사이즈 내에 가장 큰 값을 추출해내는 방식이다.
- Convolution과 Subsampling의 반복으로 이미지의 특징을 추출한다. 레이어가 깊어질수록 특징의 추출이 확실해진다.
VGGNet
- 컨볼루션 사이즈를 고정하고 깊이를 깊게하는 실험을 진행하였고 성능이 좋게 나왔기 때문에 3x3 filter만 사용하게 되었음.
ResNet
- ResNet-152: 152개의 layer를 사용함.
- Back propergation를 사용하지 않고 처음 사용한 가중치를 그대로 적용함으로서 학습이 진행되도록 하였음.
Recurrent Neural Network
- 시간 데이터를 분석하기 위해서 사용된다.
- 이론적으로는 장기 의존성 문제를 해결할 수 있지만 Gradient Vanishing 문제가 생긴다!
- 모든 시간대에서 동일한 매개변수를 사용한다.
- 이전 데이터가 넘어감으로서 다음에 영향을 주기 때문에 추천기능같은 부분에서 쓰인다.
- Single input / multi output :Imige Caption Generation (RNN + CNN) 이미지가 input으로 들어가고 문자가 output으로 나오는 것
- Multi input / single output : 감정분석 (긍정 , 부정 판단)
- Multi input/ multi output :구글 번역기
Long term short Term Memory (LSTM)
- Input이 들어오고 중요한 정보인 경우 Long Term Gate 에 들어가게 된다.
- Forget gate / imput gate
LSTM 의 변형 = GRU
- 계산 복잡성을 줄인 모델
- LSTM의 게이트를 일부 생략
Google's Neural Translation System
과거 RBMT, SMT를 사용하였고 오역이 많았음.
- RBMT: 주어, 동사, 목적어 등등으로 구분지었음
- SMT: 사과라는 단어를 넣는다면 그 단어 다음으로 올 동사를 예측하여서 번역하였음.
현재)
Encoder Network LSTM - Attention Network - Decoder Network LSTM
Attention Network: 중요한 문자, 꼭 해석해야 하는 문자들을 넣음.
- NMT: 이상한 단어가 input으로 들어갈 시. (ex>뀴쭓)
해석하지 않고 문자 그대로 output에 출력한다.
ex) 뀴쭓 i ate an apple ====> 뀴쭓 나는 사과를 먹었다
One shot/ Zero shot detection을 사용하여 여러 나라의 번역의 품질을 높였음.
그 외 필기자료 : https://github.com/jsh-me/Bigdata/tree/master/days/2days
'데이터청년캠퍼스' 카테고리의 다른 글
데이터 청년 캠퍼스 17일차 (0) | 2019.07.23 |
---|---|
데이터 청년 캠퍼스 9~10일차 (0) | 2019.07.22 |
데이터 청년 캠퍼스 사전 강의 (0) | 2019.07.05 |
데이터 청년 캠퍼스 1일차 (0) | 2019.07.05 |
빅데이터 청년캠퍼스 면접후기 (2) | 2019.07.05 |
Comments