강명호 교수님
스칼라는 숫자 하나
브로드캐스트는 값이 여러개로 늘어나는 것
행렬
행과 열
축1, 축2
신경망 배우는 분들이 교과서처럼 활용
미분은 기울기이다
미분 = 기울기
입력신호
가지돌기
신경세포체
핵 : 연산
축삭 돌기 : 자극을 전달, 네트워크 망 역할
출력신호
인간의 뉴런을 모방
신경세포의 핵
입력값 : x1, x2
가중치 : w1, w2
출력값 : y
특정 임계치 넘는 경우만 진행
로젠블랫(Frank Rosenblatt)이라는 과학자가 1958년에 제안한 인공 신경망 모델
XOR을 해결하지 못함
인공지능의 1차 겨울 도래
1980년대가 되자
연산 조합하면 가능할 것이라는 제프리 힌튼과 연구진
입력값 : 흑백
θ : 임계값
b : bias, 편향
가중치 매개 변수
가중치 파라미터
가중치 파라미터가 있다면
신경세포를 구현할 수 있습니다
w1, w2 = 0.5
b = -0.7
w1, w2 = 0.5
b = -0.2
웨이트는 입력값을 조정
편향은 결과값을 조정
NAND : not and
w1, w2 = -0.5
b = 0.7
배타적일 때만, 1로 처리
배타적 논리의 합
NAND - OR - AND 조합
임계치를 넘으면, 넘지 못하면 값이 달라짐
나중에 행렬 단위 계산시
1 x b
x1 x w1
x2 x w2
y
선형 함수를 여러 번 사용하더라도
선형 함수로 머무를 수밖에 없음
f(x) = ax + b
가산성 f(x+y) = f(x) + f(y)
동차성 f(c x) = cf(x)
선형함수는
층을 깊게 쌓는데 아무런 효과가 없습니다
1개 쌓거나
여러 개 쌓거나 동일한 선형입니다
활성화 함수 : 입력값을 일정 기준에 따라 변화시켜 출력하는 비선형 함수
주어진 값이 특정 조건을 만족하게 되면 해당 값 출력
비선형 (Non-linearty) 추가
출력 범위 제한
Gradient
계산 효율성
계단함수
Sigmoid 함수
매끈하다
미분도 가능합니다
x가 커진다
e의 -x 제곱은 0에 가까워집니다
σ(x) 값은 1에 가까워진다
x가 작아진다
σ(x) 값은 0에 가까워진다
미분 결과를 본래 함수로 표현 가능
σ(x)(1-σ(x))
h(x) = 1 / 1+exp(-x)
e 자연상수 = 2.718...
log2x
lnx 자연상수가 로그이다
h(x) = x (x > 0)
h(x) = 0 (x <= 0)
ReLU(x) = max(0, x)
시그모이드 함수는
0.25를 계속 곱해주면 0으로 수렴해서 사용할 수 없는 경우가 발생
보완하기 위해, ReLU 함수 생각
교류를 직렬로 변경
복잡한 것이 아니라
단순한 함수를 통해 깊이 있는 이해 가능
콜럼버스의 발견과 같다고 생각
ndim : 차원수 확인
shape : 형상 확인
처음 차원 : 0
0 다음 차원 : 1
2차원 배열을 matrix라고 부름
scalar : [1]
vector : [1,1]
matrix : [[1,1],[1,1]]
3-tensor : [[[1,1].[1,1]].[[1,1].[1,1]].[[1,2],[2,1]]]
n-tensor
벡터의 내적, dot product
vector 내접
1행짜리 vector는 transfer 해서 활용 가능
입력층 선형함수 가중치(기울기) 편향(절편)
은닉층 비선형함수 가중치 중첩(행열의 곱)
입력층, 편향값, 은닉층 : 1차원 벡터
가중치 : 2차원 배열
미분에 많은 CPU가 소모되기 때문에, 역으로 계산