
from Scratch
273
Optimizer
를 추상화했기 때문에 이제 다양한 최적화 기법을 바꿔가며 사용할 수
있다.
19.6
예시: XOR 문제 다시 풀어 보기
지금까지 만든 코드를 사용하면
XOR
문제를 풀어 주는 신경망을 얼마나 간편하
게 학습시킬 수 있는지 살펴보자. 먼저 학습 데이터를 다시 만들어 보자.
#
학습
데이터
xs = [[0., 0], [0., 1], [1., 0], [1., 1]]
ys = [[0.], [1.], [1.], [0.]]
그리고 신경망 구조를 정의해 보자. 이제 마지막 시그모이드 층을 명시해 주지
않아도 된다.
random.seed(0)
net = Sequential([
Linear(input
_
dim=2, output
_
dim=2),
Sigmoid(),
Linear(input
_
dim=2, output
_
dim=1)
])
추상화한
Optimizer
와
Loss
를 사용하면 간편하게 학습을 위한 반복문을 만들 수
있다. 또한 다양한 종류의 최적화 방법과 손실 함수를 쉽게 적용해 볼 수 있게
해준다.
import tqdm
optimizer = GradientDescent(learning
_
rate=0.1)
loss = SSE()
with tqdm.trange(3000) as t:
for epoch in t: ...