'MachineLearning'에 해당되는 글 1건

  1. 2017.11.20 [TIP] Machine Learning 학습 방법

먼저,

머신러닝을 시작하게된 계기가 부서에서 하는 프로젝트 중에 VMS 솔루션을 개발하고 있다.

VMS라는 것은 영상관리시스템(?) 정도인것 같은데, 여기에 특장점으로 영상분석이라는 기능을 추가하기

위해서 우리팀에 역할이 주어졌다.


영상분석을 하기 위해서. 기존에 고객사에서는 비전 방식(?)에서 사용하는 기술(?)로 영상분석 기능을 도입했다.

이녀석은 성능은 우월하지만 정확도가 떨어진다. 아마 분석에 대한 에러율이 30%이상일 것이다.

기존에 고객사에서 제공하는 영상분석 라이브러리를 제거하고 자체 솔루션을 도입하기 위해 머신러닝 방식에 영상분석 솔루션을 도입하게 된것 같다.


딥러닝에서 CNN이라는 기술이 화두고, 머신러닝에 기초도 없는 상태에서 CNN을 공부하는게 무리라는 생각이 들었다.


내가 공부를 진행해온 과정을 보면,


구글에서 '머신러닝 강의' 라는 키워를 가지고 3가지 정도의 강좌를 찾았다.

1. 홍콩 과기대 김성훈 교수 강의 - 모두를 위한 머신러닝/딥러닝 강의

 - http://hunkim.github.io/ml/

2. KAIST 오혜연 교수 강의 - K-MOOC(인공지능과 기계학습)

 - http://www.kmooc.kr/courses/course-v1:KAISTk+KCS470+2017_K0202/about

3. Standforad 대학의 Andrej Karpathy 강의 - CS231n: Convolutional Neural Networks for Visual Recognition

 - http://cs231n.stanford.edu/syllabus.html

4. 모두의 연구소의 Chanwoo Jacob Lee - 딥러닝 강의


이중 내가 선택한 강의는 홍콩 과기대 김성훈 교수의 강의를 선택했다.

※ 먼저 말하자면, 1번 김성훈 교수의 강의는 10번쯤 본거 같고, 4번 강의는 중간중간 참고하였으며, 3번 강의는 현재 팀에서

1강부터 세미나를 진행하고 있어서 진행중이다. 2번 강의는.. 볼 여력이 없었다. 8월초부터 시작하여 현재까지의 공부한 내용들을 기록해보겠다.


강의는 총 12강으로 구성되어 있지만, 서브 주제들이 있어서 대략 30강 정도 되는거 같다.

강의 시간은 10~20분 사이에 짧은 시간으로 되어 있으며, 교수님도 언급을 하지만, 최대한 수학과 프로그래밍을

모르는 사람을 대상으로 가르치려고 노력한것 같다.


강의를 보기로 마음 먹은날, 11강 'Convolutional Neural Networks' 강의를 아무 생각 없이 먼저 들어봤다.

CNN 강의가 총 6개로 구성되어져 있는데 다 들어봐도 무엇을 가르치려고 하는지 의도파악이 전혀되지 않았다.

그래서 처음부터 듣지 않으면 안되겠다고 생각하여 정독하게 된다.


0강 - 수업의 개요

-> 그냥 들으면 된다. 무난하다.

0강 - 김성훈교수님

- https://www.youtube.com/watch?v=BS6O0zOGX4E


1강 - 머신러닝의 개념과 용어

-> 머신러닝의 기본 개념에 대해서 간략히 설명한다.

1강 - 김성훈 교수님

- https://www.youtube.com/watch?v=qPMeuL2LIqY


2 - Linear Regression 의 개념

이제부터 본격적이다. 내가 주로 참조한 블로거들이 있는데 초기에는 '꿈을위한단상'이라는 블로거의 글을 많이 보았으며,

중기 이후에는 '파이쿵'이라는 사람의 블로그를 많이 보았다.

'꿈을 위한 단상' 이라는 블로거의 글쓴이는 나처럼 수식에 대한 증명까지 못참고 시작하게 된거 같다.

'파이쿵' 이라는 블로거의 글쓴이는 김성훈 교수님의 강의를 듣고 그 강의를 정리한 사람이다.


키워드 :

가설 함수(Hypothesis), 회귀분석, Linear Regression, Cost


여기에서 알아야 할 점은 회귀분석이다.

내가 참고한 사이트들은 아래와 같다.

2강 - 김성훈 교수님

- https://www.youtube.com/watch?v=Hax03rCn3UI

2강 정리

- http://pythonkim.tistory.com/7?category=573319

회귀분석정의

- http://math7.tistory.com/118

선형 회귀 분석 간단 정리

- http://mazdah.tistory.com/749?category=598657

- http://mazdah.tistory.com/756?category=598657



3강 - Linear Regression cost함수 최소화

여기서부터는.. 수학이 필요하다.

고등학교때.. 수학을 좋아했지만, 게임때문에 수학을 등한시 했던 참담함이 이제서야 들어나기 시작했다.

전직장에서, 같이 살던 동생이 내가 수학공부를 해둬야겠다고 말하자 친히 자기가 공부했던 정석 풀세트

까지 집에서 가져다 주면서 공부해보라고 했는데.. 그 기회를 놓친것이 참으로 아쉽다.

어쨋든, 난 이 고비를 넘기고 싶어서. 여기서 강의를 이어가지 않고 한달동안 중-고딩 수학 수업을 듣기 시작했다.


요즘은 너무나도 공부하기 좋은 환경이 아닌가 싶다. 지금 머신러닝을 공부하기 위해서 강의를 듣는것처럼.

수학도 여러 선생님들이 강의를 잘 올려 두었다. (아주 다행인 일)


이 강의에서 내가 수학을 공부해야겠다고 생각하게된 이유는 '미분' 때문이다.

미분을 공부하기 위해서 내가 선택한 강의는 아래와 같다.


1. 수학의 정석인강 기본정석 미적분1 김강용

- https://www.youtube.com/playlist?list=PLZ-sYD4cFpbzqR6QprwOfjd3C-ySwYGsI

여기서 내가 들은 강의는

1강 - 수열의 극한1

2강 - 수열의 극한2

5강 - 함수의 극한

6강 - 함수의 연속1

7강 - 함수의 연속2

8강 - 미분계수와 도함수1

9강 - 미분계수와 도함수2


2. 개념원리 미적분2 - 도정

https://www.youtube.com/playlist?list=PLufHu9rBg_0ijjZYlfXLAizzXWCiU9nZJ

이 사람은 원래는 유투브에 무료로 배포했지만, 변심해서 지금은 유료가 되었다.

돈 없는 학생들을 위해서 좋은 강의를 공유하고 있구나 생각했는데.. 아쉽다 ㅋ

이 강의를 듣게된 이유는 미분을 하다보니, 지수함수랑 로그함수를 알아야 하며 또한, 지수/로그 함수 그래프를

알아야 한다. 여기에서 들은 강의는

1-1강 - 지수함수(1)

1-1강 - 지수함수(2)

1-2강 - 로그함수(1)

1-2강 - 로그함수(2)

1-2강 - 로그함수(3)


3. 이외의 생각나는 강의

중학교 수학이 생각 안나서, 유리수, 지수, 로그 등도 찾아서 들었고,

자연상수, 자연로그e 뭐 이런것들도 더찾아서 들었던것 같다.


여튼 약 1달 동안 와이프랑 함께(ㅋ) 수식 풀고 증명하고 이러한 과정을 거쳐왔다.


다시 김성훈 교수님의 3강으로 돌아오면,

미분을 알아야 하는 이유는 Gradient Descent Algortithm 때문이다.


키워드 :

Hypothesis, Cost, Gradient Descent Algorithm, 미분, 편미분, 기울기, 절편


내가 참고한 사이트들은 아래와 같다.

3강 - 김성훈 교수님

- https://www.youtube.com/watch?v=TxIVr-nk1so

3강 정리

- http://pythonkim.tistory.com/10?category=573319

기울기와 절편

- http://mazdah.tistory.com/761?category=598657

시그마와 미분

- http://mazdah.tistory.com/762?category=598657

수학 - 수치 미분

- http://blog.naver.com/PostView.nhn?blogId=mykepzzang&logNo=220072089756&parentCategoryNo=16&categoryNo=&viewDate=&isShowPopularPosts=true&from=search

수학 - 미분계수

- http://terms.naver.com/entry.nhn?docId=2073828&cid=47324&categoryId=47324

수학 - 도함수

- http://terms.naver.com/entry.nhn?docId=2073829&cid=47324&categoryId=47324&expCategoryId=47324

수학 - 미분 정리

- https://www.youtube.com/watch?v=oZyvmtqLmLo&feature=youtu.be

- https://ko.wikipedia.org/wiki/%EB%AF%B8%EB%B6%84


4강 - 여러개의 입력(feature)의 Linear Regression


이 강의에서 가장 중요한 점은 행렬이다. 또 한.. 머신러닝.. 딥러닝에서 가장 중요한 개념이 행렬이 아닌가 싶다.

또 여러 블로거들을 지나치다가 "행렬'이 머신러닝을 이해하는 가장 중요한 첫걸음이라는 글을 본것 같기도하다.

하지만, 내가 저강의를 들을때쯤에는, 아래 그림을 이해하는데 어려운게 없어서 크게 개의치 않고 넘어갔던것 같다.


중요하다고 생각되는부분이, 단순선형회귀 함수를 그래프로 그려 시각적으로 확인하는 것은 크게 어렵지 않다. 

Multi-Variable이라는 개념에서부터. 3차원 그래프까지는 예상이 되지만, 차원이 넘어갈 수록 시각적으로 그려지는

모습이 떠올려지지 않는다.


그래서 어떤이가. 행렬을 배우기에 좋은 사이트를 소개해줬다.

* 칸아카데미 선형대수 강의

- https://www.khanacademy.org/math/linear-algebra/vectors-and-spaces/vectors/v/vector-introduction-linear-algebra


아직 이강의를 듣지 못했다. 하지만 조만간에 이강의를 들을 예정이다.


키워드 :

Matrix, Transpose, 행렬, 행렬의 곱, 다중 선형 회귀


내가 참고한 사이트들은 아래와 같다.

4강 - 김성훈 교수님

- https://www.youtube.com/watch?v=kPxpJY6fRkY&feature=youtu.be

4강 정리

- http://pythonkim.tistory.com/13?category=573319

다중 선형 회귀

- http://mazdah.tistory.com/764?category=598657

- http://www.holehouse.org/mlclass/04_Linear_Regression_with_multiple_variables.html


4강까지 정리

- http://pythonkim.tistory.com/15?category=573319


5-1강 - Logistic (Regression) Classification - Hypothesis 함수 소개

로지스틱 회귀분석을 알기 위해서 상당한 시간이 필요했다.

수학적인 개념이 가장 많이 요구되는 시간이기도하다. 하지만 로지스틱회귀 분석을 넘어서면 조금 자신감도 붙고

재미가 있어지는 시기이기도 한것 같다. 참고로 딥러닝에서 유명한 알고리즘들(네트워크)은 로지스틱 회귀분석을

거쳐 로지스틱회귀가 전신인 소프트 맥스라는 함수를 사용하고 있다.


"꿈을 위한 단상" 블로거의 글이 가장 큰 도움이 되었으며, 저 사람은 문과생이라서 나와 같은 입장에서 알아가고

글을 쓴게 아닌가 싶다.

3강에서 배운 선형회귀분석은 예측을 위한 함수이다.

5강에서 가르치는 로지스틱회귀부터는 분류에 개념을 가지고 있다.

또한 이부분에서 가장 많은 블로깅과 강의를 본게 아닌가 싶다.


키워드 :

예측, 분류, 로지스틱 회귀, 자연상수 e, 자연로그, 로그, 로그함수의 그래프, 극한(무한대), 시그모이드, 오즈비, 로짓 변환


5-1강 - 김성훈 교수님

- https://www.youtube.com/watch?v=PIjno6paszY&feature=youtu.be

5강 정리

- http://pythonkim.tistory.com/16?category=573319

로지스틱 회귀 분석 이해를 위한 수학 지식

- http://mazdah.tistory.com/769?category=598657

위키 - 오즈비, 로짓 변환, 로지스틱회귀

- https://ko.wikipedia.org/wiki/%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1_%ED%9A%8C%EA%B7%80

자연상수와 자연로그

- http://mazdah.tistory.com/770?category=598657

자연로그와 자연상수e 심화학습

- http://mazdah.tistory.com/773?category=598657

모두의 연구소 노트 설명- 비용함수(로지스틱 회귀)

- https://www.youtube.com/watch?v=XvB5u7YSeUk

기타 블로거들

- http://gnujoow.github.io/ml/2016/01/29/ML3-Logistic-Regression/

- http://jihoonlee.tistory.com/19

- http://gnujoow.github.io/ml/2016/01/29/ML3-Logistic-Regression/

- http://gentlej90.tistory.com/69

- https://b.luavis.kr/ml/Logistic-regression

- https://medium.com/mathpresso/mathpresso-머신-러닝-스터디-4-회귀-분석-regression-2-4f938f1f1c2d

- http://bcho.tistory.com/1142

- http://kkokkilkon.tistory.com/19

- https://ratsgo.github.io/machine%20learning/2017/04/02/logistic/


5-2강 - Logistic (Regression) Classification - Cost 함수 소개


이부분에서부터 그래프에 대해서 생각을 해보게 된것 같다. 난 기본적으로 지수함수의 그래프 로그함수의 그래프가

바로 떠올려지지 않았다. 사실 배운적도 없는것 같다. 그래서 다시 중학교 과정의 수학 지수와 로그를 공부했고

다시 고등학교 과정의 지수함수의 그래프와 로그함수의 그래프를 보게 된것 같다.



키워드 :

그래프, 지수, 로그, 지수함수의 그래프, 로그함수의 그래프, Gradient Descent, 자연상수e, Cross-Entropy


5-2강 - 김성훈 교수님

- https://www.youtube.com/watch?v=6vzchGYEJBc&feature=youtu.be

5-2강 정리

- http://pythonkim.tistory.com/22?category=573319

로지스틱회귀의 비용함수 이해

- http://mazdah.tistory.com/783?category=598657

로지스틱 회귀 비용함수로부터 Cross-entropy 도출하기

- http://mazdah.tistory.com/791?category=598657

수식을 그래프로 그려주는 사이트

- https://www.desmos.com/calculator



6-1강 - Softmax Regression (Multinomial Logistic Regression) - Multinomial 개념 소개

궁극적으로 CNN의 마지막 단계에 Softmax Regression을 사용하게 된다. 반드시 이해해야 한다.

로지스틱 회귀를 넘어섰다면, 크게 어렵지 않게 다가 올수 있다.


키워드 : 소프트맥스, Multinomial Classification, 행렬, 시그모이드, 확률, 1


6-1강 - 김성훈 교수님

- https://www.youtube.com/watch?v=MFAnsx1y9ZI&feature=youtu.be

6-1강 정리

- http://pythonkim.tistory.com/19

다항 로지스틱 회귀의 이해

- https://www.youtube.com/watch?v=MFAnsx1y9ZI&feature=youtu.be

모두의 연구소 노트 설명- 비용함수(소프트맥스)

- https://www.youtube.com/watch?v=jeOp8aIm1x8

기타 블로그

- http://copycode.tistory.com/164

- http://goodtogreate.tistory.com/entry/Softmax-Function

- http://coolingoff.tistory.com/26

- http://eehoeskrap.tistory.com/144

- http://eyeofneedle.tistory.com/3

- http://dytis.tistory.com/36


6-2강 - Softmax Regression (Multinomial Logistic Regression) - Cost 함수 소개

이번 강의에서는 Cross-Entropy 라는 개념이 나온다. 퓨쳐시스템에서 DDoS장비 펌웨어 개발업무를 할 때, 임계치 자동 설정을 위해 매일, 매주, 매달의 평균 CPS, TPS, PPS 통계를 학습하여 임계치를 자동설정해주는 기능이 있었다. 그때는.. 엔트로피가 수학적이라는 개념이라는 정도로만 알고 있었고 더 나아가서 공부해보려는 생각을 하지 못했다. 이제 이렇게 공부를 하게 되니 반갑기도하고 제대로 알아보자는 마음도 생긴다.


키워드 : Cross-Entropy, 소프트맥스, Multinomial Classification, 행렬


6-2강 - 김성훈 교수님

- https://www.youtube.com/watch?v=jMU9G5WEtBc&feature=youtu.be

6-2강 정리

- http://pythonkim.tistory.com/20?category=573319

로지스틱 회귀 비용함수로부터 Cross-entropy 도출하기

- http://mazdah.tistory.com/791?category=598657


7-1강 - ML의 실용과 몇가지 팁 - 학습 rate, Overfitting, 그리고 일반화 (Regularization)

여기 까지 왔으면 머신러닝에 이용되는 기본적인 알고리즘들을 학습했다고 볼 수 있을것 같다. 여기서 부터는 조금씩

딥러닝에 세계로 들어가는 시점인것 같다. 이번 주제에 대해서는 실질적으로 텐서플로우를 이용하여 학습하고 그 결과에

대해서 튜닝하는 과정에 이용되는 TIP 이라고 보면 될것 같다.


키워드 : 학습율, Overfitting, Regularization, L2


7-1강 - 김성훈 교수님

- https://www.youtube.com/watch?v=1jPjVoDV_uo&feature=youtu.be

7-1강 정리

- http://pythonkim.tistory.com/23?category=573319

표준화/정규화

- https://brunch.co.kr/@rapaellee/4

기타 블로그

- http://leechanho.tistory.com/24

- http://blog.naver.com/PostView.nhn?blogId=cattree_studio&logNo=220703210504

- http://studioplug.tistory.com/264


7-2강 - ML의 실용과 몇가지 팁 - Training/Testing 데이타 셋

이번 강의는 데이터를 학습시키기 위한 이론적인 방법론에 대한 설명이다.


키워드 : Training, Test, Accuracy, Performance, Evaluation


7-2강 - 김성훈 교수님

- https://www.youtube.com/watch?v=KVv1nMSlPzY&feature=youtu.be

7-2강 정리

- http://pythonkim.tistory.com/24?category=573319


8-1강 - 딥러닝의 기본 개념과, 문제, 그리고 해결 - 시작과 XOR 문제 비디오

이번 강의는 딥러닝의 역사와 거쳐온 문제와 해결 과정들을 알아갈 수 있다. 참으로 신기한게 인간의 뇌를 흉내낼 생각을 했다는 것과 그것을 컴퓨터 과학으로 옮기려 했던점. 아무튼 천재들이 많은것 같다. 나는 김성훈 교수님 강의를 다 듣고 이글을 쓰고 있다. 뭔가 부족한 점을 매우기 위해 "밑바닥부터 시작하는 딥러닝"  이라는 책을 일회독 한 상태이다. 지금은 말 할 수 있지만 AI 역사에서 겪었던 여러문제들이 생각보다 간단한 부분에서 해결을 하지 못하고 10~20년 이라는 세월이 흘러가버린거 같다.

Marvin Minsky교수님이 AI계를 열었다고 해도 무방한 분이신데 저 사람때문에 10~20년이라는 세월이 퇴보했다고 평가하고 있다. (이유는 해결하지 못한다는 논문을 너무 잘 쓰셔서 이다.)

 


키워드 : 인간의 뇌, Marvin Minsky, 퍼셉트론, XOR, Hinton, Lecun, CNN 


8-1강 - 김성훈 교수님

- https://www.youtube.com/watch?v=n7DNueHGkqE&feature=youtu.be

8-1강 정리

- http://pythonkim.tistory.com/31?category=573319

퍼셉트론

http://www.datamarket.kr/xe/index.php?mid=board_LCmL04&listStyle=gallery&document_srl=25685

신경망

http://astrod.github.io/2017/02/19/19.html

http://psiyblg.tistory.com/4


8-2강 - 딥러닝의 기본 개념과, 문제, 그리고 해결 - Back-propagation 과 2006/2007 '딥'의 출현

이번 강의 역시 딥러닝의 역사에 대한 강의이다. Back-Propagation 이라는 것은 뒤에 강의에서 나오겠지만 딥러닝의 학습에 대한 가장 쟁점이 되는 중요한 기술이다. 꼭 이해해야 한다. 그리고 이번 강의에서 왜 우리들이 딥러닝을 공부해야 하는지 그리고 아직 늦지 않았다는 것. 그리고 지금부터라도 꼭 시작해야 한다는 점을 강조하신다. 나 또한 같은 생각이다. 지금부터 시작해도 아직 늦지 않았다. 3년전에 AI를 시작한 사람과 지금의 내가 다른점이 있다면 TensorFlow, Cafe와 같은 프레임웍을 다루는 숙련도일 것이라고 보기 때문이다. 자바를 오래한 사람이, C언어를 오래한 사람이 이제 막 시작한 사람보다 더 잘할것이라는 보장은 없기 때문이다고 생각한다.


키워드 : CIFAR, Imagenet, CNN, History, Deep Learning


8-2강 - 김성훈 교수님

- https://www.youtube.com/watch?v=AByVbUX1PUI&feature=youtu.be

8-2강 정리

- http://pythonkim.tistory.com/32?category=573319



9-1강 - Neural Network 1 - XOR 문제와 학습방법

드디어 딥러닝으로 들어서는 Neural Network이다. 이번 강의에서는 Minksy 교수가 절대로 풀지못할거라며 논문을 썻던 XOR문제에 대한 설명이 나온다. Neural Network의 전신은 Percept 이론이다. 퍼셉트론은 Minksy교수님이 고안했고 AI계를 시작하는 초기 이론이된다. 나는 김성훈 교수님의 강의를 통해 전체적인 흐름을 잡았지만, "밑바닥부터시작하는 딥러닝" 이라는 책을 공부함으로써 살이 붙은것같다. 사실 "밑바닥부터시작하는 딥러닝"이라는 책이 도움이 많이 되었다.


키워드 : Neural Network, Perceptrons, XOR, Train, Minsky


9-1강 - 김성훈 교수님

- https://www.youtube.com/watch?v=GYecDQQwTdI&feature=youtu.be

9-1강 정리

- http://pythonkim.tistory.com/33?category=573319


9-x강 - Neural Network 1 - 특별편: 10분안에 미분 정리하기

이번 강의는 보너스 강의이다. 김성훈 교수님이 수포자들을 위해서 특별히 만드신것 같다. 사실... 나는 미분을 공부한적이

없기 때문에 이 강의를 소화하지 못했다.. 고딩 수학을 듣고서야 이 수업을 이해하게 되었다. 김성훈 교수님의 여러 가지 측면에서 베푸는 마음이 느껴진다.




키워드 : 미분, 편미분, 합성함수, Chain Rule


9-x강 - 김성훈 교수님

- https://www.youtube.com/watch?v=oZyvmtqLmLo&feature=youtu.be

9-x강 정리

- http://pythonkim.tistory.com/35?category=573319


9-2강 - Neural Network 1 - Backpropagation (1986 breakthrough)

이번 강의는 가장 중요한 강의이다. Minsky 교수님께서 XOR문제는 2개의 뉴럴을 NAND, OR 게이트를 통해 AND 게이트를 수행하면 문제가 해결 된다는것을 밝혔지만, 학습을 시킬 수 없다고 단언하고 논문을 냈다. 이로 인해 20년동안 이문제가 해결이 안되었다고 한다. 사실 1970년도에 어떤 대학원생이 Backpropagation을 가지고 MINKSY교수님께 문제를 해결했다고 언급했지만 Minksy교수님은 이를 묵살했다고 한다.(본인도 해결 못했는데 니가 했을리 없다(?) 마음이셨던듯) 그후로 1986년도에 Hinton 교수님께서 Backpropagation을 논문으로 발표한 후 이 문제가 해결된다.



키워드 : 순전파, 오차역전파, Backpropagation, Minsky, Hinton, 미분, Chain Rule, sigmoid


9-2강 - 김성훈 교수님

- https://www.youtube.com/watch?v=573EZkzfnZ0&feature=youtu.be

9-2강 정리

- http://pythonkim.tistory.com/36?category=573319

기타 블로그

- http://www.datamarket.kr/xe/board_LCmL04/26808

- http://blog.naver.com/cjswo9207/221060205450


10-1강 - Neural Network 2 - XSigmoid 보다 ReLU가 더 좋아

Hinton 교수님에 의해 XOR 문제로 겪는 학습에 대한 문제점을 Backpropagation 기법으로 인해 해결이 되었다. 하지만 Backpropagation에서 레이어마다 사용되는 Sigmoid 함수 때문에 레이어가(층)이 깊어질 수록 학습에 영향을 주기 위한 값들이 상쇄 되는 효과가 발생한 것이다. 이 문제를 해결하지 못해 10년이상 또 후퇴 되었다고 한다. 현재는 sigmoid를 쓰면 안된다는 것이 분석이 되었고 이를 대항하여 ReLU라는 기법을 사용한다. 또한 ReLU라는 기법으로 해결이 된다는 것을 알게된 여러 학자들이 ReLU를 개선한 여러 기법들을 연구하고 있는 중이다.

참고로 말하면.. ReLU라는 기법이 어처구니가 없다. 0보다 작은값이 들어오면 0으로 치환하고 0보다 큰값만 영향을 미칠 수 있게 값을 조정한다는 것이다. 이러한 점이 10년이라는 시간을 어둡게 만들었다는게 참으로 놀랍다.



키워드 : Sigmoid, Relu, Backpropagation, CIFAR


10-1강 - 김성훈 교수님

- https://www.youtube.com/watch?v=cKtg_fpw88c&feature=youtu.be

10-1강 정리

- http://pythonkim.tistory.com/40?category=573319

기타 블로그

- http://coolingoff.tistory.com/39

- https://m.blog.naver.com/PostView.nhn?blogId=zzing0907&logNo=220693996517&proxyReferer=http:%2F%2Fwww.google.co.kr%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D8%26ved%3D0ahUKEwiNuMalyrXWAhUHpZQKHc6KCnUQFgg_MAc%26url%3Dhttp%253A%252F%252

- http://mongxmongx2.tistory.com/25

- https://wooil.gitbooks.io/mlearn/content/sigmoidbcf4-b2e4-relu-ac00-b354-c88b-c544.html


10-2강 - Neural Network 2 - Weight 초기화 잘해보자

이번 강의는 학습을 시키기 위한 초기값에 대한 강의이다. 이번 강의를 설명하시면서 김성훈 교수님께서도 어처구니가 없다는식으로 피식 웃으시는데.. 정말 그렇다. 초기 값이라는게 정말 중요한데. 여러 복잡한 알고리즘 RBM 등등이 있지만, Xavier/He라는 학자들이 어처구니 없는 결과를 보여준 것이다. 현재 HE의 초기 값으로 이미지넷 대회에서 Error 율이 3%로 밖에 되지 않는다고 한다. 참고로 인간은 5%이다. 하지만 이 분야는 아직도 많은 연구중에 있다고 한다.


xavier - 입력값과 출력값 사이의 난수를 선택해서 입력값의 제곱근으로 나눈다.
he - 입력값을 반으로 나눈 제곱근 사용. 분모가 작아지기 때문에 xavier보다 넓은 범위의 난수 생성.


키워드 : Xavier, He, Weight, 초기값 


10-2강 - 김성훈 교수님

- https://www.youtube.com/watch?v=4rC0sWrp3Uw&feature=youtu.be

10-2강 정리

- http://pythonkim.tistory.com/41?category=573319

기타블로그

- http://sanghyukchun.github.io/75/

- http://coolingoff.tistory.com/40


10-3강 - Neural Network 2 - Dropout 과 앙상블

이번 강의도 역시 Weight 초기값을 잘줘야 하는 것처럼 학습을 잘 할 수 있는 방법에 대한 설명이다. 하지만 이번 강의에서도 교수님께서 어처구니가 없어서 피식 웃으신다. 그러한 이유는 일반적으로 생각했을때 잘 안될것 같은데 결과가 좋게 나오기 때문이다.  대표적인게 아래의 그림이다. 여러개의 복잡한 네트워크 구조에서 일부의 노드들을 제거하여 특정 노드로만 학습을 시킨다는 것인데, 예를들어 설명한게 전문가가 너무 여러명이면 배가 산으로가니 특정 전문가들로만 학습을 하겠다는 것이다. 그냥 사람들의 일반적인 이론을 접목한것인데 잘 되는것이다.(아직 왜 잘 되는지 증명이 안된것으로 보인다)



키워드 : Dropout, Ensemble, 전문가, Train


10-3강 - 김성훈 교수님

- https://www.youtube.com/watch?v=wTxMsp22llc&feature=youtu.be

10-3강 정리

- http://pythonkim.tistory.com/42?category=573319

기타 블로그

- http://firmcode.tistory.com/13

- http://hexists.tistory.com/m/204

- http://bhappy0906.tistory.com/19

- http://newsight.tistory.com/106

- http://coolingoff.tistory.com/41


10-4강 - Neural Network 2 - 서브 주제

이번 강의는 Deep Learning의 기초를 마무리하는 시간이다. 교수님께서는 누구나 레고 블록처럼 모델을 만들 수 있다고 말씀하신다. 그러한 이유는 이미 우리는 Tensorflow와 같은 좋은 도구를 제공 받을 수 있음이지 싶다. 알파고는 CNN이라는 모델을 적용 했다고 한다. 그 밖에 RNN 등 다양한 모델들이 있는데 이것들이 결국 레고 블록처럼 자기 취향대로 조합을 했다는 것이다. 그러므로 우리도 우리의 모델을 자유롭게 만들 수 있다는 것이다. 





키워드 : CNN, RNN, 레고 블록


10-4강 - 김성훈 교수님

- https://www.youtube.com/watch?v=YHsbHjTBx9Q&feature=youtu.be

10-4강 정리

- http://pythonkim.tistory.com/43?category=573319

기타 블로그

- http://coolingoff.tistory.com/42

- https://wooil.gitbooks.io/mlearn/content/lec10/10-4-b808-ace0-cc98-b7fc-b137-d2b8-c6cd-baa8-b4c8-c744-b9c8-c74c-aecf-c313-c544-bcf4-c790.html



11-1강 - Convolutional Neural Networks - ConvNet의 Conv 레이어 만들기

처음 시작이 CNN 강의 부터 들었었다. 정말 그때는 무슨 소리인지 하나도 못알아 들었었는데. 지금은 전반적인 내용은 다 이해되고 있다. 하지만 아직까지도 그려지지 않은 부분이 있지만, 이제 공부의 시작이니 앞으로 나아가다 보면 자연스레 채워질 거라고 보고 있다. CNN은 고양이의 시신경을 연구하여 그 특징을 컴퓨터 과학에 접목 시켰다는 것이  참으로 놀랍다. 초기에 친구에게 CNN을 언급했더니 이상한 논문을 하나 던져줬었다. 쉽다며.. 이제 읽어볼 수있을것 같기도하다.


논문: Long-term Recurrent Convolutional Networks for Visual Recognition and Description

       https://arxiv.org/pdf/1411.4389.pdf





키워드 : 고양이, CNN, Convolutional, RELU, POOL, FC, Softmax, Layer


11-1강 - 김성훈 교수님

- https://www.youtube.com/watch?v=Em63mknbtWo&feature=youtu.be

11-1강 정리

- http://pythonkim.tistory.com/52?category=573319

Stanford

- http://aikorea.org/cs231n/convolutional-networks/

- http://cs231n.stanford.edu/index.html

CNN

- http://deeplearning.net/tutorial/lenet.html

- http://www.robots.ox.ac.uk/~vgg/practicals/cnn/

- https://www.slipp.net/wiki/pages/viewpage.action?pageId=26641520



11-2강 - Convolutional Neural Networks ConvNet Max pooling 과 Full Network

이번 강의는 듣는데 그렇게 어려움이 없다. 수학적인 부분도 산술연산정도 밖에 들어가지 않는다. 다만.. 왜 이렇게 하면 학습이 잘 되는지 그 원리가 아직 감이 안온다. 앞으로도 계속 공부를 이어가기 때문에 항상 염두해두면서 공부를 진행해야겠다.




키워드 : pooling, Layer, Fully Connected, Softmax


11-2강 - 김성훈 교수님

- https://www.youtube.com/watch?v=2-75C-yZaoA&feature=youtu.be

11-2강 정리

- http://pythonkim.tistory.com/53?category=573319


11-3강 - Convolutional Neural Networks - ConvNet의 활용예

이번 강의는 여러 논문들을 소개한다. 이제 드디어 저러한 논문들을 읽을 준비가 된것 같다. 여러 용어들 그 용어들이 어떠한 역할을 하는지를 알고 있기 때문이다. 다음 강의는 Neural Network의 꽃이라는 RNN이다.  하지만 나는 강의 듣는것을 이번 강의로 멈추었다. 언젠가 공부할 기회가 오겠지만 지금 필요한것은 이미지 학습에 관한 것이기 때문에 CNN까지만 공부를 하면 된다.



키워드 : CNN, LeNet, ResNet, AlexNet, GoogleNet, layer, filter, stride, padding


11-3강 - 김성훈 교수님

- https://www.youtube.com/watch?v=KbNbWTnlYXs&feature=youtu.be

11-3강 정리

- http://pythonkim.tistory.com/54?category=573319


마치며,

맨땅에 해딩하는 마음으로 시작하게 되었지만, 이제 제법 용어 정리도 되고 기초 지식 정도는 학습한것 같다. 8월 부터 11월 까지 공부한 내용을 대충 정리하자면

1. 김성훈 교수님 강의: 약 10회독

2. 모두의 연구소의 Chanwoo Jacob Lee 강의:  약 3~4회독

3. 밑바닥부터 시작하는 딥러닝: 약 1.5 회독

4. Standforad 대학의 Andrej Karpathy 강의: 은지 세미나로 1회독 중

 

다행히 팀 업무가 스터디라서 업무중에도 공부할 시간이 주어졌다. 업무 시간 이외에도 대략 새벽 1시까지는 공부했으니 하루 공부량은 꽤 되는거 같다.


이제부터는 공부한 내용을 그때그때 기록하는 습관이 갖추어 지길 바란다..

Posted by 이성윤