본문 바로가기
Dev/Coursera - Machine Learning

[Coursera ML][4주차] Neural Networks : Representation

by 아임웬디 2020. 3. 1.

4주차부터 학습 내용 : Neural Networks이라 불리는 학습 알고리즘

앞서 배운 선형 회귀와 로지스틱 회귀가 기계학습에 사용되고 있는데, 이 알고리즘은 왜 필요할까?

 

1. Motivations

- Non-linear Hypothesis

ex. Housing Problem

두 개의 feature간의 상관 정도 : 선형 회귀 -> 하지만 기계 학습에서는 2개보다는 더 많은 feature가 필요

feature에 따른 주택 값을 예측 : 분류 문제 -> 비선형적

but, feature가 많을수록, 모든 요소를 고려하기에는 너무 많고 Overfitting의 문제가 발생할 수 있음

-> 대안 : 요소 중에 어떤 부분집합만 포함

-> 요소가 많을수록 급격하게 요소 공간을 확대하게 되므로, 비선형적 분류를 위해 요소를 추가하는 방식은 좋지 않음

 

ex. Car Detection - Computer Vision Problem

이미지의 2개의 pixel을 기준으로 Car / Non-Car로 분류 -> 비선형적 형태로 분류가 나타남.

작은 이미지인 50X50 픽셀이미지를 사용한다고 해도, 흑백일 경우 n = 2500 컬러일 경우 RGB로 인해 R/G/B값 나눠서 반영되므로 n = 7500 (2500*3)이 된다. 히지만 (xi x xj) 형태의 모든 항이니까 3백만개로 급증하므로, 단순 로지스틱 회귀로 n이 클 때 학습하기에 좋은 방법이 아니다.

- Neurons and the Brain

Origin : 뇌를 모방하려는 알고리즘

 

'One learning algorithm' hypothesis - Neuro rewiring experiment

ex. Auditory Cortex 실험 : 귀에 시그널을 통해 들을 수 있도록 하는 부위인데, 이를 귀와의 연결을 끊고 눈과 연결했을때 Auditory Cortex가 시각을 학습하여 처리

ex. Somatosensory Cortex : 위의 실험과 동일하게 감각을 담당하는 부위에 시각을 연결했더니 시각을 학습 처리

 

+ Sensor representations in the brain.. 여러 실험들

 

2. Neural Networks 

뉴런 : 두뇌의 세포

 

 

수상돌기(dendrite)로부터 입력받아 뉴런에서 특정 계산을 처리하고

축색돌기(Axon)으로 출력하여 다른 노드나 뉴런으로 전송

 

 

 

 

위의 뉴런의 로직으로 만든 모델

- x0 " bias unit " : 항상 값이 1, 가독성을 위해 생략하기도 함

- Sigmoid (logistic) activation function : 비선형 함수 g(z) = 1 / 1+e^-z 

- theta는 이전 주차와 동일하게 사용하며, Neural Network에서 가중치라고도 불린다

 

input layer, output layer, 그 이외의 layer hidden layer

If network has sj units in layer j and sj+1 units in layer j+1, then Θ(j) will be of dimension sj+1×(sj+1).

ex. layer 1 : 2 input node / layer 2 : 4 activation node ? Dimension of Θ(1) = 4 x 3

 

Forward propagation : input -> hidden -> output 계산이 처리되는 과정

logistic regression : x1, x2, x3 input 값으로 사용

neural network : a1, a2, a3이라는 새로운 값으로 사용

즉, layer 1의 x1, x2, x3을 Big theta (가중치)에 따라 학습된 a1, a2, a3로 학습을 한다

 

3. Applications

- AND 연산

이와 같은 구조일 때, Θ(1) = [-30  20  20]

 

 

 

 

 

 

 

cf) 

g(z) : sigmod function

- OR 연산

Θ(1) = [-10  20  20]일 때,

 

 

 

 

 

 

 

XNOR 연산자는 두 노드 사이에 히든 레이어를 사용하는 것과 흐름이 같다! 

- Multiclass Classification : 하나 이상의 카테고리로 분류 ex. 손글씨 숫자 인식

one-vs-all의 확장된 방법 이용

h Θ (x)와 y(i) vector 모두 분류하고자 하는 n개 카테고리의 차원. 여기서는 4

 

댓글