XOR같은 키값으로 1차적인 뉴런(초창기 퍼셉트론)으로는 가중치 값을 편향할수 없다.
그래서 나온게 다중뉴런 이다. 2차적인 활성함수 이상일 경우 신경망 뉴런이라고 부르는데 xor같은 학습시킬때
신경망 뉴런을 이용하여 학습하면 해결이 된다.
이중 다중 신경망을 쓰기 위해서 keras를 사용한다.
keras에서 가장 많이 쓰이는 구조는 tf.keras.Sequential구조이다. 순차적으로 뉴런과 뉴런이 합쳐진 단위인 레이어를 일직선으로 배치하는 구조이다.
tf.keras.layers.Dense는 model에서 사용하는 레이어를 정의하는 명령어이다. Dense는 가장 기본적인 레이어로써, 레이어의 입력과 출력 사이에 있는 모든 뉴런이 서로 연결되는 레이어이다.
model.compile(optimizer=tf.keras.optimizers.SGD(lr=0.1), loss='mse') 는 model이 실제로 동작할 수 있도록 준비하는 명령어이다.
윗부붑능 최적화 함수의 학습식을 정의하는 부분도 의미한다. 최적화 함수는 미분 적분을 써서 진행하는 부분이지만, tf.keras에서는 미리 정의된 최적화 함수를 불러와서 사용할수 있게 해준다.
위의 SGD는 경사 하강법의 약자이며, 가중치를 업데이트할 때 미분을 통해 기울기를 구한 다음 기울기가 낮은 쪽으로 업데이트를 하곘다는 뜻이다.
손실(loss)는 error의 개념과 비슷한데 딥러닝은 손실을 줄이는 방향으로 학습을 하는데 mse는 평균 제곱 오차(Mean Squared Error)의 약자로, 기대출력에서 실제출력을 뺀 뒤에 제곱한 값을 평균하는 것이다.
history=model.fit(x,y, epochs=2000, batch_size=1) 이것은 학습시키는 명령어이고 epochs는 for문처럼 반복적으로 학습시키는 것을 의미한다. batch_size는 한번에 학습시키는 데이터의 수를 말한다.
model.predict([변수])는 어떠한 값을 넣었을때 학습된 데이터를 예측하는 명령어이다.
'프로그래밍 > 머신러닝' 카테고리의 다른 글
Tensorflow5 (0) | 2020.09.25 |
---|---|
Tensorflow4 (0) | 2020.09.22 |
Tensorflow3 (0) | 2020.09.21 |
Tensorflow1 (0) | 2020.09.15 |
댓글