반응형

perceptron

초기 퍼셉트론: 여러개의 바이너리 인풋을 받아서 하나의 바이너리 아웃풋을 리턴 (뉴런을 모방)

여러 입력을 받아 하나의 출력을 만드는 초기 퍼셉트론 구조
여러 입력을 받아 하나의 출력을 만드는 초기 퍼셉트론 구조

인풋 범위를 실수로 확장하고 weight를 도입하고 output 계산식을 정의

가중합과 임계값으로 0 또는 1 출력을 정하는 퍼셉트론 식
가중합과 임계값으로 0 또는 1 출력을 정하는 퍼셉트론 식

인풋을 weight sum 해서 의사결정을 한다고 생각가능

예를들어 파티에 갈지 결정하는 퍼셉트론을 만들어보자

파티에 가고싶은 요소:

• 날씨는 좋은지 x1 = 0 또는 1

• 여자친구가 같이가고 싶어하는지 x2 = 0 또는 1

• 교통은 좋은지 x3 = 0 또는 1

그런데 날씨가 좋은 경우 다른건 따지지 않고 참석하고 싶을때..

w1 = 6, w2 = 2, w3 = 2, threshold = 5로 놓아보자

날씨가 안좋아도 여자친구가 가고싶어하고 교통이 좋으면 참석하는 걸로 바꾸어 보면.. threshold를 3으로 변경

AND 게이트를 만들어보자!

두 입력과 가중치, 임계값으로 구성한 AND 게이트 퍼셉트론
두 입력과 가중치, 임계값으로 구성한 AND 게이트 퍼셉트론

• x1 x2

• 0 0 > 0

• 0 1 > 2

• 1 0 > 2

• 1 1 > 4

퍼셉트론 여러개를 쌓아보자

퍼셉트론을 여러 층으로 쌓은 신경망 구조
퍼셉트론을 여러 층으로 쌓은 신경망 구조

가산기를 만들어보자

논리 게이트 조합으로 만든 반가산기의 합과 자리올림 출력
논리 게이트 조합으로 만든 반가산기의 합과 자리올림 출력
퍼셉트론 네트워크로 표현한 반가산기 구조
퍼셉트론 네트워크로 표현한 반가산기 구조

convnetJS Demo

http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html



layer_defs = [];
layer_defs.push({type:'input', out_sx:1, out_sy:1, out_depth:2});
layer_defs.push({type:'softmax', num_classes:2});

net = new convnetjs.Net();
net.makeLayers(layer_defs);

trainer = new convnetjs.SGDTrainer(net, {learning_rate:0.01, momentum:0.1, batch_size:10, l2_decay:0.001});

sigmoid neuron

시그모이드 함수의 기본 정의
시그모이드 함수의 기본 정의
가중합과 편향을 입력으로 사용하는 시그모이드 뉴런 식
가중합과 편향을 입력으로 사용하는 시그모이드 뉴런 식
입력 변화에 따라 부드럽게 증가하는 시그모이드 함수 그래프
입력 변화에 따라 부드럽게 증가하는 시그모이드 함수 그래프
임계값에서 출력이 바뀌는 계단 함수 그래프
임계값에서 출력이 바뀌는 계단 함수 그래프
시그모이드 함수와 ReLU 활성화 함수 그래프 비교
시그모이드 함수와 ReLU 활성화 함수 그래프 비교

반응형

+ Recent posts