SlideShare a Scribd company logo
1 of 34
기본 신경망 구현
도정찬
목차
1. 인공신경망의 작동 원리
2. 간단한 분류 모델 구현하기
3. 선형회귀모델 구현하기
1. 인공신경망의 작동 원리
1. 인공신경망의 작동 원리
1. 인공신경망의 작동 원리
Neuron Perceptron
1. 인공신경망의 작동 원리
brain Artifical Neural Netowrk
1. 인공신경망의 작동 원리
1. 인공신경망의 작동 원리
machine learning deep learning
(deep neural network)
1. 인공신경망의 작동 원리
input
1. 인공신경망의 작동 원리
processing
1. 인공신경망의 작동 원리
activation and output
1. 인공신경망의 작동 원리
1. 인공신경망의 작동 원리
neural network
1. 인공신경망의 작동 원리
error backpropagation
adjust weights
2. 간단한 분류 모델 구현하기
2. 간단한 분류 모델 구현하기
2. 간단한 분류 모델 구현하기
classification
image
input
output 8(value)
input
output
2. 간단한 분류 모델 구현하기
조류와 포유류 분류하기
2. 간단한 분류 모델 구현하기
털과 날개의 유무로 판단
[(털의 유무),(날개의 유무)]
[1,0]
털은 있지만 날개가 없음
[1,1]
털도 있고 날개도 있음
2. 간단한 분류 모델 구현하기
jupyter notebook 파일을 하나 만들고,
파일 이름을 ‘02’로 바꿔주세요.
2. 간단한 분류 모델 구현하기
파일 이름을 변경하면
먼저 tensorflow와 numpy를 임포트 합니다.
2. 간단한 분류 모델 구현하기
사용할 학습 데이터를 정의 합니다.
데이터 값에 따라 아래와 같이 분류할 수 있습니다.
조류 – [1,1], 포유류 - [1,0], 기타 - [0,0]
2. 간단한 분류 모델 구현하기
입력 데이터 x가 [(털의 유무),(날개의 유무)]로 나타낸다면
출력 데이터(분류 결과)는 아래와 같이 표현합니다.
아래와 같이 [0,0,1], [0,1,0] 등의 이진법으로 분류 결과를 나타내는 방식을 ‘원-핫 인코딩’ 이라 합니다.
원-핫 인코딩에 대한 자세한 내용은 ‘밑바닥부터 시작하는 딥러닝’ 또는 본 교재를 참고하시기 바랍니다.
2. 간단한 분류 모델 구현하기
이번에는 학습용 분류 결과 데이터(y)를 원-핫-인코딩로 표헌합니다.
학습용 입력값(x)와 결과값(y)는 동일한 순서로 매칭됩니다.
[(털),(날개)]
기타 - [0,0]
포유류 - [1,0]
조류 -[1,1]
2. 간단한 분류 모델 구현하기
2. 간단한 분류 모델 구현하기
이제 신경망 모델을 구성하겠습니다.
이전에 선언한 입력, 결과 데이터를 입력하기 위해 플레이스 홀더를 선언합니다.
2. 간단한 분류 모델 구현하기
그 다음 신경망을 결정하는 가중치와 편향 변수를 설정합니다.
가중치는 2행 3행 형태의 -1~1범위로 하는 균일(uniform)분포함수로 초기화 하고,
편향 b는 0으로 초기화 합니다.
2. 간단한 분류 모델 구현하기
여기서 신경망을 1층으로 구현하면서
입력 데이터의 길이가 2이고, 출력 데이터의 길이가 3 이므로
가중치는 (2,3), 편향은 (3) 형태로 만듭니다.
X1
X2
+b1
+b2
+b3
y1
y2
y3
입력 데이터 형태
[1,1]
[1,0]
[0,0]
털 유무
날개 유무
기타
0
포유류
1
조류
2
R
E
L
U
x1*w1
x1*w2
x1*w3
x2*w1
x2*w2
x2*w3
2. 간단한 분류 모델 구현하기
이 내적, 편향, 활성화함수 까지
신경망 연산을 구현하면 아래와 같습니다.
2. 간단한 분류 모델 구현하기
출력 값을 만든 후 softmax 함수를 이용하여 다듬어 줍시다.
softmax 함수는 출력 점수들을 확률로 변환하여 줍니다.
이 데이터는 '기타’로 분류
2. 간단한 분류 모델 구현하기
신경망 모델은 만들었지만 학습을 위해 손실 함수를 만듭시다.
여기서는 교차 엔트로피 오차 함수를 사용합니다.
이 함수 코드는 아래와 같습니다.
2. 간단한 분류 모델 구현하기
학습 결과를 출력하는 코드를 작성합니다.
하지만 10000번 학습을 해도 잘 예측을 하지 못하고 있습니다.
신경망이 1층으로 되어있기 때문인데 더 깊이 만들면 더 나은 성능을 낼 수 있습니다.
W, b, model 등 결과 출력
x_data를 이용하여 예측한 값과 실제값 신경망이 얕아 정확하지 않습니다.
2. 간단한 분류 모델 구현하기
조금 전 예측 결과 값을 받을때 argmax() 함수를 사용했습니다.
이 함수는 가장 높은 점수를 갖는 데이터의 인덱스를 반환하여 쉽게 분류할수 있도록 합니다.
아래와 같이 [0.53,0.24,0.23]으로 결과값(확률)이 나오면 가장 큰(argmax) ‘0.53’은 0번째 이므로 0을 반환합니다.
2. 간단한 분류 모델 구현하기
간단하게 정확도를 출력하면 아래와 같습니다.
아래의 코드는 예측값과 실제값을 비교하여 정확도를 확률로 나타냅니다.
2. 간단한 분류 모델 구현하기
전체 코드
감사합니다

More Related Content

More from jdo

[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리jdo
 
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수jdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Othersjdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNetjdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNetjdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16jdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷jdo
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2jdo
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1jdo
 
[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2jdo
 
[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1jdo
 
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수jdo
 
[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트jdo
 
[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망jdo
 
[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열jdo
 
[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화jdo
 
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제jdo
 
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부jdo
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competitionjdo
 
1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식jdo
 

More from jdo (20)

[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
 
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
 
[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2
 
[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1
 
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
 
[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트
 
[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망
 
[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열
 
[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화
 
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
 
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competition
 
1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식
 

텐서플로우-기본신경망구현

  • 2. 목차 1. 인공신경망의 작동 원리 2. 간단한 분류 모델 구현하기 3. 선형회귀모델 구현하기
  • 3. 1. 인공신경망의 작동 원리 1. 인공신경망의 작동 원리
  • 4. 1. 인공신경망의 작동 원리 Neuron Perceptron
  • 5. 1. 인공신경망의 작동 원리 brain Artifical Neural Netowrk
  • 7. 1. 인공신경망의 작동 원리 machine learning deep learning (deep neural network)
  • 9. 1. 인공신경망의 작동 원리 processing
  • 10. 1. 인공신경망의 작동 원리 activation and output
  • 12. 1. 인공신경망의 작동 원리 neural network
  • 13. 1. 인공신경망의 작동 원리 error backpropagation adjust weights
  • 14. 2. 간단한 분류 모델 구현하기 2. 간단한 분류 모델 구현하기
  • 15. 2. 간단한 분류 모델 구현하기 classification image input output 8(value) input output
  • 16. 2. 간단한 분류 모델 구현하기 조류와 포유류 분류하기
  • 17. 2. 간단한 분류 모델 구현하기 털과 날개의 유무로 판단 [(털의 유무),(날개의 유무)] [1,0] 털은 있지만 날개가 없음 [1,1] 털도 있고 날개도 있음
  • 18. 2. 간단한 분류 모델 구현하기 jupyter notebook 파일을 하나 만들고, 파일 이름을 ‘02’로 바꿔주세요.
  • 19. 2. 간단한 분류 모델 구현하기 파일 이름을 변경하면 먼저 tensorflow와 numpy를 임포트 합니다.
  • 20. 2. 간단한 분류 모델 구현하기 사용할 학습 데이터를 정의 합니다. 데이터 값에 따라 아래와 같이 분류할 수 있습니다. 조류 – [1,1], 포유류 - [1,0], 기타 - [0,0]
  • 21. 2. 간단한 분류 모델 구현하기 입력 데이터 x가 [(털의 유무),(날개의 유무)]로 나타낸다면 출력 데이터(분류 결과)는 아래와 같이 표현합니다. 아래와 같이 [0,0,1], [0,1,0] 등의 이진법으로 분류 결과를 나타내는 방식을 ‘원-핫 인코딩’ 이라 합니다. 원-핫 인코딩에 대한 자세한 내용은 ‘밑바닥부터 시작하는 딥러닝’ 또는 본 교재를 참고하시기 바랍니다.
  • 22. 2. 간단한 분류 모델 구현하기 이번에는 학습용 분류 결과 데이터(y)를 원-핫-인코딩로 표헌합니다. 학습용 입력값(x)와 결과값(y)는 동일한 순서로 매칭됩니다. [(털),(날개)] 기타 - [0,0] 포유류 - [1,0] 조류 -[1,1]
  • 23. 2. 간단한 분류 모델 구현하기
  • 24. 2. 간단한 분류 모델 구현하기 이제 신경망 모델을 구성하겠습니다. 이전에 선언한 입력, 결과 데이터를 입력하기 위해 플레이스 홀더를 선언합니다.
  • 25. 2. 간단한 분류 모델 구현하기 그 다음 신경망을 결정하는 가중치와 편향 변수를 설정합니다. 가중치는 2행 3행 형태의 -1~1범위로 하는 균일(uniform)분포함수로 초기화 하고, 편향 b는 0으로 초기화 합니다.
  • 26. 2. 간단한 분류 모델 구현하기 여기서 신경망을 1층으로 구현하면서 입력 데이터의 길이가 2이고, 출력 데이터의 길이가 3 이므로 가중치는 (2,3), 편향은 (3) 형태로 만듭니다. X1 X2 +b1 +b2 +b3 y1 y2 y3 입력 데이터 형태 [1,1] [1,0] [0,0] 털 유무 날개 유무 기타 0 포유류 1 조류 2 R E L U x1*w1 x1*w2 x1*w3 x2*w1 x2*w2 x2*w3
  • 27. 2. 간단한 분류 모델 구현하기 이 내적, 편향, 활성화함수 까지 신경망 연산을 구현하면 아래와 같습니다.
  • 28. 2. 간단한 분류 모델 구현하기 출력 값을 만든 후 softmax 함수를 이용하여 다듬어 줍시다. softmax 함수는 출력 점수들을 확률로 변환하여 줍니다. 이 데이터는 '기타’로 분류
  • 29. 2. 간단한 분류 모델 구현하기 신경망 모델은 만들었지만 학습을 위해 손실 함수를 만듭시다. 여기서는 교차 엔트로피 오차 함수를 사용합니다. 이 함수 코드는 아래와 같습니다.
  • 30. 2. 간단한 분류 모델 구현하기 학습 결과를 출력하는 코드를 작성합니다. 하지만 10000번 학습을 해도 잘 예측을 하지 못하고 있습니다. 신경망이 1층으로 되어있기 때문인데 더 깊이 만들면 더 나은 성능을 낼 수 있습니다. W, b, model 등 결과 출력 x_data를 이용하여 예측한 값과 실제값 신경망이 얕아 정확하지 않습니다.
  • 31. 2. 간단한 분류 모델 구현하기 조금 전 예측 결과 값을 받을때 argmax() 함수를 사용했습니다. 이 함수는 가장 높은 점수를 갖는 데이터의 인덱스를 반환하여 쉽게 분류할수 있도록 합니다. 아래와 같이 [0.53,0.24,0.23]으로 결과값(확률)이 나오면 가장 큰(argmax) ‘0.53’은 0번째 이므로 0을 반환합니다.
  • 32. 2. 간단한 분류 모델 구현하기 간단하게 정확도를 출력하면 아래와 같습니다. 아래의 코드는 예측값과 실제값을 비교하여 정확도를 확률로 나타냅니다.
  • 33. 2. 간단한 분류 모델 구현하기 전체 코드