Perceptron [08-1]
Perceptron
인공신경망이란?
동물의 신경계, 그중에서 특히 뇌에 있는 뉴런의 동작 방식을 본떠 만든 모델이다.
Nuron
인간의 뇌에서 신호를 서로 주고받는, 신호를 전달하는 역할을 수행한다.
입력 신호들이 들어왔을 때, 신호의 크기가 어떤 특정값, threshold를 넘게 되면 활성화가 돼서 신호가 다음 뉴런으로 전파된다.
하지만 특정 값을 넘지 못하면 신호가 전파되지 못한다.
Perceptron
인공신경망의 한 종류이다. 초창기 perceptron은 Linear Classifier을 위해서 만들어진 모델이다.
linear classsifier는 어떤 두가지 클래스가 있을 때, 이것을 linear하게 분류를 할 수 있는 분류기를 말한다.
1950년도에 perceptron이 개발 되었는데, 그때는 AND와 OR문제를 해결하기 위해서 만들어졌다.
AND, OR, XOR
1개의 layer를 갖고 있는 persceptron구조로는 XOR 문제를 해결할 수 없다.
여러개의 multiplayer를 쌓아야만 XOR문제를 풀 수 있다.
backpropagation을 통해 이 w들을 학습할 수 있으나 당시 이 방법이 개발되지 않았다.
XOR에 대한 Perceptron구현 코드
X = torch.FloatTensor([[0, 0], [0, 1], [1, 0], [1, 1]]).to(device)
Y = torch.FloatTensor([[0], [1], [1], [0]]).to(device)
# nn layers
linear = torch.nn.Linear(2, 1, bias=True)
sigmoid = torch.nn.Sigmoid()
model = torch.nn.Sequential(linear, sigmoid).to(device)
# define cost/loss & optimizer
criterion = torch.nn.BCELoss().to(device)
optimizer = torch.optim.SGD(model.parameters(), lr=1)
for step in range(10001):
optimizer.zero_grad()
hypothesis = model(X)
# cost/loss function
cost = criterion(hypothesis, Y)
cost.backward()
optimizer.step()
if step % 100 == 0:
print(step, cost.item())
Author And Source
이 문제에 관하여(Perceptron [08-1]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shonsk0220/Perceptron-08-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)