2019.06.01
B. Basic Machine Learning: Supervised Learning
Hypothesis Set
학습목표
가설집합을 어떤 방식으로 정하는지 학습합니다.
핵심키워드
가설집합(Hypothesis set)
가설 집합은 infinity 하기 때문에 모든 경우의 수를 실험할 수 없다.
하이퍼파라미터(Hyperparameter)
모델을 training 한다는 것은 하이퍼파라미터를 찾는 과정이다. 예를 들어 SVM에서는 어떤 kernel function을 쓸 건지, 가우시안 RBF를 쓴다면 c를 어떻게 조정할 건지..
네트워크 아키텍쳐(The architecture of a network)
딥러닝에 한해서 설명을 하자면, input에 대한 output이 어떤 아키텍쳐로 구성해야 잘 찾아갈 것인지를 설계하는 게 중요하다. 예전엔 각 노드를 다 설계해줬지만, 현재 tensorflow 등의 framework은 이런 수고를 덜어주기 때문에 각 노드를 어떻게 연결해줄 것인지만 고려하면 된다.
가중치 매개변수(weight parameter)
각 노드에서 w를 어떻게 구할 것인가? logistic regression을 예로 설명하였음.
비순환 그래프(An (arbitrary) directed acyclic graph)
input으로부터 output까지. ouput에서 input으로 다시 순환하지 않는 그래프 형태.
인공신경망(Neural Network)
50년대에 뇌의 구조가 이럴 것이다!에 영감을 받았지만 실제 biological 하지 않음.
정리
- 가설 집합은 무수히 많습니다. 머신러닝 접근 방법, 모델 구조, 하이퍼파라미터 등 요소를 하나씩 변화할 때 마다 가설 하나가 세워지기 때문입니다.
- 이번 강의에서는 딥러닝에 한정 지어서 이야기 하겠습니다.
네트워크 아키텍처가 정해지면, 하나의 가설 집합이 됩니다.
각기 다른 가중치 매개변수 값에 따라서 가설 집합이 속한 모델이 달라집니다.
- 그렇다면 네트워크 아키텍처를 어떻게 정해야 할까요?
명확한 정답은 없습니다.
다만 네트워크 아키텍처가 정해지면 그 뒤부터는 모든 것이 자동화 과정으로 넘어가는데, 어떻게 이것이 가능한 지 알아봅시다.
- 인공신경망은 무엇일까요?
비순환 그래프(DAG)라고 할 수 있습니다.
각 노드들은 이미 Tensorflow, Pytorch 등 패키지에서 잘 정의되어 있습니다. 여러분은 이 노드들을 어떻게 연결시킬지에 집중하면 됩니다.
장점 :
- 높은 수준의 추상화가 되어있으며, 비순환 그래프 안에 있는 노드들이 어떻게 구현되있고, 백엔드에서 어떻게 쓰고 있는지 고려할 필요가 없습니다.
- 객체 지향 프로그래밍 패러다임에 적합합니다.
- 코드 재사용이 용이합니다.