This is an old revision of the document!


nn

과적합 가능성, 해석X, 최후의 수단?

perceptron $ x_1,...,x_n \xrightarrow[\text{weights}]{w_1,...,w_n} \sum w_ix_i $ → 1 or -1
hyperplane으로 구분되는 두 개의 공간을 분리하는 역할

역사
3분(57)

perceptron : 1957년 고안
Artificial neuron, 다수의 신호를 입력으로 받아 하나의 신호를 출력
논리회로 : AND, NAND, OR 표현할 수 있음

XOR(배타적 논리합) : 단순 퍼셉트론으로는 불가능

그림

직선 하나로는 불가능, 직선 제약을 없애면 가능

다층 퍼셉트론, 층을 쌓아서 가능
뇌의 구조는 복잡. ANN으로 뇌를 묘사할 때는 여러 개의 연속된 층으로 추상화하는 것이 일반적

신경망
입력층, 은닉층, 출력층

활성화 함수activation function
입력신호의 총합이 h(x)를 통해 변환

$ y = h ( XW+b ) $
출력 = 활성화함수( 입력*가중치 + 편향)

step function
sigmoid function
step 대신 sigmoid? 미분위해서. step을 잘 근사한 smooth
(기술적으로 sigmoid는 함수의 모양을 지칭, logistic은 함수 자체를 가리키는 말)
ReLu(Rectified Linear Unit)
tanh

그래프

identity function
softmax function (분류)

MNIST

batch : 하나로 묶은 입력 데이터
mini-batch : 훈련 데이터 중 일부를 무작위로 꺼내고(mini-batch), 그 미니배치에 대해서 경사법으로 매개변수를 갱신

손실함수
MSE mean squared error
CEE cross entropy error

정확도를 지표로 삼으면 안되는 이유? 미분값이 대부분의 장소에서 0이 됨
- 정확도는 매개변수 조금 조정하게 되면 개선되지 않고 일정하게 유지.. discrete
- 손실함수는 연속적으로 변함

gradient descent method : 가중치 매개변수의 기울기(가중치 매개변수에 대한 손실 함수의 기울기)를 이용, 기울어진 방향으로 가중치의 값을 갱신
학습률

vs Newton Mothod https://qastack.kr/stats/253632/why-is-newtons-method-not-widely-used-in-machine-learning

수치미분을 이용한 계산에는 시간이 걸리지만, 구현이 간단
back-propagation of error은 기울기를 고속으로 구할 수 있다.

실제계산
https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/

1. 입력 벡터에 대해 feed_forward를 수행하고 모든 뉴런의 출력값을 계산
2. 각 뉴런에 대해 오류값 계산
3. weight에 따라 오류값의 gradient를 계산해서 오류를 최소화하는 방향으로 weight 재조정
4. hidden layer의 오류값을 추정하기 위해 출력층의 오류값을 뒤로 전파(back-propagate)
5. 오류값의 기울기를 다시 구하고 같은 방식으로 hidden layer의 weight를 재조정.

경사하강
gradient : 미적분을 기억한다면, 이것은 편미분 벡터
함수가 가장 빠르게 증가할 수 있는 방향
step size: 과학보다는 기술(art)에 가깝다.

SGD
대부분의 오류함수는 더할수있는additive 속성을 가지고 있음. 즉, 데이터 전체에 대한 오류값이 각각 데이터 포인트에 대한 오류값의 합과 같다.
이럴 때는 한번 반복문을 돌 때마다 데이터 포인트 한 개에 대한 gradient를 계산.

Enter your comment. Wiki syntax is allowed:
W I᠎ U O A
 
  • data_analysis/nn.1586669020.txt.gz
  • Last modified: 2025/07/07 14:12
  • (external edit)