해커에게 전해들은 머신러닝-4
tensorflowkorea.wordpress.com/슬라이드-자료/
tensorflowkorea.wordpress.com/2016/10/29/해커에게-전해들은-머신러닝
github.com/rickiepark/ml-learn
2016. 11.
Park Haesun(haesunrpark@gmail.com)
콘볼루션
Fully Connected
...
⋅ 64 × 100 + [100]
ConvNet, CNN
...
...
...
...
⋅ 3 × 3 + [1]
ConvNet, CNN
...
...
...
...
⋅ 3 × 3 + [1]
특성 맵
(Feature Map)
콘볼빙(Convolving)
특성 맵(Feature Map)
특성 맵(3D)
커널, 필터(w)
Feed Forward
Convolution
Convolution
소프트맥스 함수
스트라이드, 패딩
스트라이드
스트라이드 계산
𝑜 =
𝑖 − 𝑓
𝑠
+ 1 =
4 − 3
1
+ 1 = 2
입력(i): 4x4
필터(f): 3x3
스트라이드(s): 1
스트라이드 계산
𝑜 =
𝑖 − 𝑓
𝑠
+ 1 =
5 − 3
2
+ 1 = 2
입력(i): 5x5
필터(f): 3x3
스트라이드(s): 2
가로, 세로 스트라이드
𝑜 𝑤𝑖𝑑𝑡ℎ =
𝑖 𝑤𝑖𝑑𝑡ℎ − 𝑓𝑤𝑖𝑑𝑡ℎ
𝑠 𝑤𝑖𝑑𝑡ℎ
+ 1
𝑜ℎ𝑒𝑖𝑔ℎ𝑡 =
𝑖ℎ𝑒𝑖𝑔ℎ𝑡 − 𝑓ℎ𝑒𝑖𝑔ℎ𝑡
𝑠ℎ𝑒𝑖𝑔ℎ𝑡
+ 1
패딩
패딩 계산
𝑜 =
𝑖 − 𝑓 + 2𝑝
𝑠
+ 1 =
5 − 4 + 2 × 2
1
+ 1 = 6
입력(i): 5x5
필터(f): 4x4
스트라이드(s): 1
출력 크기를 알아야 하는 이유
가중치 파라메타의 크기를 정하기 위해
앞 레이어 유닛의 크기 X 현재 레이어 유닛의 크기
텐서플로우에서는
패딩 크기, 스트라이드 크기  출력 크기
패딩 타입, 스트라이드 크기  출력 크기
(패딩 크기 자동 결정)
SAME 패딩
크기와 출력의 크기를 같게 함
tf.nn.conv2d(.., padding=‘SAME’, ..)
𝑜 =
𝑖 − 𝑓 + 2𝑝
𝑠
+ 1
𝑖𝑓 𝑠 = 1,
𝑜 = 𝑖 − 𝑓 + 2𝑝 + 1
𝑝 =
𝑓 + 1
2
필터 크기가 짝수일 때 패딩이 좌우 비대칭
패딩이 필터의 절반 정도라 하프(Half) 패딩이라고도 부름
스트라이드가 1 일 때,
VALID 패딩
패딩이 없는 것
tf.nn.conv2d(.., padding=‘VALID’, ..)
𝑜 =
𝑖 − 𝑓 + 2𝑝
𝑠
+ 1 =
𝑖 − 𝑓
𝑠
+ 1
𝑖𝑓 𝑠 = 1,
𝑜 = 𝑖 − 𝑓 + 1
스트라이드가 1 일 때,
출력은 입력 크기에서 필터 크기를 빼고 1 을 더함
렐루
렐루 함수
𝑦 =
𝑥, 𝑖𝑓 𝑥 > 0
0, 𝑖𝑓 𝑥 < 0
𝑦 = max(0, 𝑥)
ReLU, Rectifier Linear Unit
텐서플로우에서는
시그모이드 함수
tf.nn.sigmoid()
소프트맥스 함수
tf.nn.softmax()
렐루 함수
tf.nn.relu()
서브샘플링
Subsampling
Subsampling
보통 풀링(Pooling)이라고 부름
평균 풀링(Average Pooling), 맥스 풀링(Max Pooling)
데이터 압축의 효과
풀링
가중치를 곱하거나 바이어스를 더하는 것이 없음
입력 맵에서 읽은 데이터를 재 가공함
보통 풀링 크기와 스트라이드 크기가 같음
텐서플로우에서는
평균 풀링 함수
tf.nn.avg_pool(.., strides=.., ..)
맥스 풀링 함수
tf.nn.max_pool(.., strides=.., ..)
평균 풀링
𝑜 =
𝑖 − 𝑓
𝑠
+ 1
=
5 − 3
1
+ 1 = 3
맥스 풀링
𝑜 =
𝑖 − 𝑓
𝑠
+ 1
=
5 − 3
1
+ 1 = 3
텐서 크기
텐서플로우
tensorflow.org
텐서플로우
tensorflow.org
1 Year
텐서
ndarray Tensor
다차원 배열
텐서플로우에 입력, 타겟 데이터 주입
텐서
입력의 크기가
정해지지 않음
입력의 크기가
정해지지 않음
데이터를 받을 그릇
콘볼루션 크기
1617 × 8 × 8 × 1 → 3 × 3 , 𝑆𝐴𝑀𝐸, 32개 → 1617 × 8 × 8 × 32 →
2 × 2 , 𝑀𝑎𝑥𝑃𝑜𝑜𝑙 → 1617 × 4 × 4 × 32 → 1617 × 300 → 1617 × 10
...
...
콘볼루션 뉴럴 네트워크
콘볼루션
1617 × 8 × 8 × 1 → 3 × 3 , 𝑆𝐴𝑀𝐸, 32개 → 1617 × 8 × 8 × 32
풀링
1617 × 8 × 8 × 32 → 2 × 2 , 𝑀𝑎𝑥𝑃𝑜𝑜𝑙 → 1617 × 4 × 4 × 32
완전 연결 레이어
1617 × 4 × 4 × 32 → 1617 × 512 → 1617 × 300
...
출력 레이어
1617 × 300 → 1617 × 10
...
...
비용 함수, 정확도
평균 계산을 위해 부
동소수점으로 변환
전체 훈련 데이터의
비용값 누적 더 조심스러운
학습속도
행방향으로 최대값을
가진 인덱스 추출
학습 결과
반복(epoch) 루프
실행할 연산을
리스트로 전달
플레이스홀더에
데이터 주입
학습 결과
감사합니다.

해커에게 전해들은 머신러닝 #4

Editor's Notes

  • #4 y 햇: h, f 등으로 쓰기도 함.
  • #5 y 햇: h, f 등으로 쓰기도 함.
  • #6 y 햇: h, f 등으로 쓰기도 함.
  • #7 데이터 마이닝은 지식이나 인사이트를 얻는다. 머신러닝은 새로운 데이터를 처리하는 데 촛점을 맞추므로 어떻게 해결되었는 지 적절하게 설명하기 어려울 수 있다.
  • #8 데이터 마이닝은 지식이나 인사이트를 얻는다. 머신러닝은 새로운 데이터를 처리하는 데 촛점을 맞추므로 어떻게 해결되었는 지 적절하게 설명하기 어려울 수 있다.
  • #9 데이터 마이닝은 지식이나 인사이트를 얻는다. 머신러닝은 새로운 데이터를 처리하는 데 촛점을 맞추므로 어떻게 해결되었는 지 적절하게 설명하기 어려울 수 있다.
  • #10 데이터 마이닝은 지식이나 인사이트를 얻는다. 머신러닝은 새로운 데이터를 처리하는 데 촛점을 맞추므로 어떻게 해결되었는 지 적절하게 설명하기 어려울 수 있다.
  • #11 데이터 마이닝은 지식이나 인사이트를 얻는다. 머신러닝은 새로운 데이터를 처리하는 데 촛점을 맞추므로 어떻게 해결되었는 지 적절하게 설명하기 어려울 수 있다.
  • #13 통계학의 알고리즘에 많이 의존함. 통계학적 머신러닝이라고 부르기도 함. 컴퓨터 과학에 좀 더 실용적 접근이 많음.
  • #14 통계학의 알고리즘에 많이 의존함. 통계학적 머신러닝이라고 부르기도 함. 컴퓨터 과학에 좀 더 실용적 접근이 많음.
  • #15 통계학의 알고리즘에 많이 의존함. 통계학적 머신러닝이라고 부르기도 함. 컴퓨터 과학에 좀 더 실용적 접근이 많음.
  • #16 통계학의 알고리즘에 많이 의존함. 통계학적 머신러닝이라고 부르기도 함. 컴퓨터 과학에 좀 더 실용적 접근이 많음.
  • #17 통계학의 알고리즘에 많이 의존함. 통계학적 머신러닝이라고 부르기도 함. 컴퓨터 과학에 좀 더 실용적 접근이 많음.
  • #18 통계학의 알고리즘에 많이 의존함. 통계학적 머신러닝이라고 부르기도 함. 컴퓨터 과학에 좀 더 실용적 접근이 많음.
  • #19 통계학의 알고리즘에 많이 의존함. 통계학적 머신러닝이라고 부르기도 함. 컴퓨터 과학에 좀 더 실용적 접근이 많음.
  • #20 통계학의 알고리즘에 많이 의존함. 통계학적 머신러닝이라고 부르기도 함. 컴퓨터 과학에 좀 더 실용적 접근이 많음.
  • #21 AI는 언어학, 뇌의학, 검색, 로봇틱스 포함 아직 일반지능이 아님 딥러닝은 뉴럴 네트워크를 사용한 머신러닝
  • #22 AI는 언어학, 뇌의학, 검색, 로봇틱스 포함 아직 일반지능이 아님 딥러닝은 뉴럴 네트워크를 사용한 머신러닝
  • #31 y 햇: h, f 등으로 쓰기도 함.
  • #32 y 햇: h, f 등으로 쓰기도 함.
  • #34 y 햇: h, f 등으로 쓰기도 함.
  • #35 y 햇: h, f 등으로 쓰기도 함.
  • #36 y 햇: h, f 등으로 쓰기도 함.