일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Java
- 자바스크립트
- Framework
- AWS
- ubuntu
- 알고리즘
- 설치
- spring
- 연동
- mariadb
- Tornado
- 파이썬
- 자료형
- 연결
- 배열
- r
- OrientDB
- BAEKJOON
- Python
- 백준
- 토네이도
- 오픈한글
- 저지
- 이클립스
- 프레임워크
- API
- Judge
- r script
- MongoDB
- online
Archives
- Today
- Total
맛동산
단순 퍼셉트론 본문
신호의 총합이 정해진 한계를 넘어설 때 1을 출력
-> 뉴런이 활성화한다
- 1 -
한계치 : 임계값(세타 기호)
0 (w1x1 + w2x2 <= 세타)
1 (w1x1 + w2x2 > 세타)
AND <-> NAND (AND의 매개변수 부호를 모두 반전하면 구현)
AND 회로
def AND(x1, x2): w1, w2, theta = 0.5, 0.5, 0.99 tmp = x1*w1 + x2*w2 result = 0 if tmp <= theta else 1 return result print(AND(0,0)) print(AND(1,0)) print(AND(0,1)) print(AND(1,1)) # 이건 뭐랄까 선형회귀식의 꼴
- 2 -
다음과 같은 식으로 표현할 수 있음(b를 편향 bias 라고 함)
0 (-b + w1x1 + w2x2 <= 0)
1 (-b + w1x1 + w2x2 > 0)
def AND(x1, x2): #x,w,b = np.array([x1, x2]), np.array([0.5, 0.5]), -0.99 x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.99 tmp = np.sum(w*x) + b result = 0 if tmp <= 0 else 1 return result print(AND(0,0)) print(AND(1,0)) print(AND(0,1)) print(AND(1,1))
가중치는 중요도를 조절하는 매개변수, 편향은 뉴런이 얼마나 쉽게 활성화 하느냐를 조정하는 매개변수
NAND 구현
def NAND(x1, x2): #x,w,b = np.array([x1, x2]), np.array([0.5, 0.5]), -0.99 x = np.array([x1, x2]) w = np.array([-0.5, -0.5]) b = 0.99 tmp = np.sum(w*x) + b result = 0 if tmp <= 0 else 1 return result print(NAND(0,0)) print(NAND(1,0)) print(NAND(0,1)) print(NAND(1,1))
다층 퍼셉트론은 이따 다시
'파이썬 > 딥러닝 구현' 카테고리의 다른 글
신경망의 내적은 행렬의 내적과 같다 (0) | 2017.05.19 |
---|---|
계단 함수와 시그모이드 함수 그리고 ReLU, 활성화 함수가 선형 함수면 안되는 이유 (2) | 2017.05.15 |
SyntaxNet 관련 좌표 (0) | 2017.05.15 |
다층 퍼셉트론의 구현(XOR) (0) | 2017.05.14 |
numpy 배열 평탄화 (0) | 2017.05.12 |
Comments