딥러닝 기술을 이용해서 현업에서 하고 있는 일들?
1. 인천공항 컨테이너 검색대에 물건을 올리면 위반되는 물품이 있는지 검사
2. 병원에서 x-ray 사진이나 ct 영상에서 질병여부 판별
3. 제조업 불량품 판별
4. 주가 예측하는 신경망
5. 외국어 번역하는 신경망
6. 인공지능 변호(법률책 -> 신경망 -> 판결)
7. 음악 작곡 신경망
8. 기타
ex. 건강보험 심사 평가원에서 딥러닝을 사용하는 시스템 전체 구조
리눅스 ------------ 신경망 ----------------------------------------------------- 홈페이지
↓ ↓ ↓
몽고디비 텐써플로우로 신경망 구성 (질병 폐사진 vs 정상 폐사진) 신경망활용
( 폐사진을 숫자로 변환해서 csv 파일로 생성해서 저장)
ㅇ수업목차
1장 : python numpy, matplotlib
2장 : perceptron
3장 : 3층 신경망 생성
4장 : 신경망 학습
5장 : 오차역전파
6장 : 신경망의 성능을 높이는 방법들
7장 : 합성곱 신경망(CNN)
1장. 넘파이(numpy)
python언어에서 기본적으로 지원하지 않는 배열(array) 혹은 행렬(matrix)의 계산을 쉽게해주는 라이브러리
문제1. 아래의 행렬을 numpy로 만드시오.
import numpy as np
a = np.array([1,2,3,4]).reshape(2,2)
# 또는
a = np.array([[1,2],[3,4]])
문제2. 위의 a행렬의 각 요소에 숫자5를 더하시오
a = np.array([[1,2],[3,4]])
a+5
위의 기능이 바로 numpy의 유용한 기능 중 하나인 브로드캐스트(broadcast)입니다.
넘파이에서는 형상이 다른 배열끼리도 계산을 할 수 있음
위의 그림처럼 2x2행렬과 숫자 10을 연산하기 위해서 숫자 10이 2x2 행렬로 확대된 후 연산이 이루어지는 것을 브로드 캐스트라고 함.
문제3. 위의 그림처럼 브로드 캐스트 기능을 numpy로 구현하시오.
a = np.array([1,2,3,4]).reshape(2,2)
a*10
문제4. 아래의 브로드 캐스트 기능을 numpy로 구현하시오.
a = np.array([1,2,3,4]).reshape(2,2)
b = np.array([10,20]).reshape(1,2)
a*b
문제5. 아래 행렬의 내적을 numpy로 구현하시오.
c = np.array([1,2]).reshape(1,2)
d = np.array([1,3,5,4,3,2]).reshape(2,3)
np.dot(c,d) #array([[9, 9, 9]])
문제6. 위의 행렬 내적을 신경망으로 그려보시오.
문제7. 아래 그림의 신경망을 numpy로 구현하시오.
c = np.array([3,7]).reshape(1,2)
d = np.array([4,9,1,3,7,2]).reshape(2,3)
np.dot(c,d) #array([[33, 76, 17]])
문제8. 아래 그림의 신경망을 numpy로 구현하시오.
c = np.array([2,7]).reshape(1,2)
d = np.array([2,3,8,9,1,7,1,3,4,9]).reshape(2,5)
np.dot(c,d) #array([[53, 13, 37, 46, 65]])
# 아래의 방법으로 내적해도 가능
c @ d
문제9. 아래의 2층 신경망을 파이썬으로 구현하시오.
c = np.array([2,7]).reshape(1,2)
d = np.array([2,3,8,5,1,7]).reshape(2,3)
e = np.array([7,1,3,3,4,2,8,7,6]).reshape(3,3)
np.dot(np.dot(c,d),e) #array([[832, 546, 533]])
# c @ d @ e
ㅇ넘파이의 N차원 배열(p38)
넘파이 1차원 배열(1줄로 늘어선 배열) 뿐만 아니라 다차원 배열도 작성할 수 있음.
x = np.array([[1,2,3,4,5],
[2,4,3,2,4],
[3,1,4,3,1],
[2,7,3,4,5],
[1,5,6,3,1]])
x.shape #(5, 5)
넘파이 배열은 N차원 배열을 작성할 수 있습니다.
1차원 배열, 2차원 배열, 3차원 배열처럼 원하는 차수의 배열을 만들 수 있습니다.
수학에서는 1차원 배열을 벡터(vector)라고 하고 2차원 배열을 행렬(matrix)라고 하고, 벡터와 행렬을 일반화한 것이 텐서(tensor)라고 합니다.
tensor flow -----> 행렬이 계산되면서 흘러간다.
구글에서 만든 tensor flow는 다차원 배열의 연산(계산)을 빠르게 할 수 있게끔 구현이 되어져 있습니다.
'Study > class note' 카테고리의 다른 글
딥러닝 / 넘파이 원소 접근, Matplotlib 로 그래프 그리기 (0) | 2022.03.31 |
---|---|
딥러닝 / 텐서플로우 설치 (0) | 2022.03.31 |
하둡 / 몽고디비 DML문 작성하기(insert, update) (0) | 2022.03.30 |
하둡 / 몽고디비 GUI 툴 사용하기 (0) | 2022.03.30 |
하둡 / 몽고디비 설치 (0) | 2022.03.29 |