반응형
Notice
Recent Posts
Recent Comments
Link
- Today
- Total
02-13 08:43
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SWIFT
- 시각화
- Observable
- Optional
- 티스토리챌린지
- deeplearning
- ios
- rest api
- ReLU
- 오블완
- Request
- r
- HTTP
- SQL
- decode
- 명령어
- cocoapods
- swiftUI
- barplot
- struct
- Python
- MVC
- 연산자
- substr
- rxswift
- Linux
- scheduledTimer
- sigmoid
- 딥러닝
- tapply
Archives
iOS 개발 기록 블로그
밑바닥부터 시작하는 딥러닝 교재 공부 시작하기 본문
반응형
교재
밑바닥부터 시작하는 딥러닝 |
CNN 이란
인공지능의 눈? CNN 사진 속에서 사람, 동물 등을 구별할 수 있다 다음 카카오 로드뷰에 사람 얼굴이나 차 번호 등을 개인정보 보호법 상 반드시 모자이크 처리를 해야하는데 너무 많아서 이것을 사람이 일일이 할 수가 없다. 따라서 컴퓨터에게 모자이크 처리하라고 시켜야 한다. 그 때 쓴다. 데이터를 분석한다는 것은? 회사에 돈을 벌어 주겠다. 의료 영상 데이터를 분석한다는 것은? 환자를 살리는 일이 된다. 007 영상 object detection, yolo 기술 MRI 사진 segmentation 인공지능의 입? RNN |
개요
1장. 파이썬 기본 문법 2장. 퍼셉트론 (신경망의 하나의 세포를 컴퓨터로 구현) 3장. 신경망 (신경망의 활성화 함수, 3층 신경망 생성) 4장. 신경망 학습 (손실(오차) 함수, 수치 미분, 경사하강법, 학습알고리즘 구현) 5장. 오차역전파 (계산그래프, 연쇄법칙, 역전파, 단순한 계층 구현) 6장. 신경망을 학습시키는 여러 기술들 소개 (경사하강법의 종류, 배치정규화, 드롭아웃) 7장. CNN (합성곱 신경망) - 사진을 신경망에 입력해서 이 사진이 어떤 사진인지 컴퓨터가 알아 맞히게 하는 방법을 구현 8장. 딥러닝의 역사 ↓ 텐서플로우를 이용해서 신경망을 구현 ↓ 강화학습 목표: "이미지를 분류할 수 있는 신경망을 구현" 1. 폐결절 사진 vs 정상 폐사진 구별 (데이터 충분) -> segmentation 으로 MRI 사진 분류 2. 제조업에서 만드는 제품들의 불량 여부 확인 ex) 스노우보드 : 정상 스노우보드 vs 기스가 있는 스노우보드 ex) 옷감 (천) : 정상 옷감 vs 기스가 있는 옷감 |
NumPy
Table of Contents |
- 넘파이 란? - 넘파이(numpy) 기본문법 - numpy 의 broadcast 기능 |
넘파이 란?
파이썬 언어에서 기본적으로 지원하지 않는 배열(array) 혹은 행렬(matrix)의 계산을 쉽게 해주는 라이브러리 머신러닝에서 많이 사용하는 선형대수학에 관련된 수식들을 파이썬에서 쉽게 프로그래밍 할 수 있게 해준다. |
넘파이(numpy) 기본 문법
문제 1) 아래의 행렬을 numpy로만드시오
보기)
1 2 3 4 |
답)
import numpy as np a = np.array([[1,2], [3,4]]) print(a) |
[[1 2]
[3 4]]
문제 2) 위의 a 행렬의 각 요소에 5를 더한 값을 출력하시오
답)
import numpy as np a = np.array([[1,2], [3,4]]) print(a + 5) |
[[6 7]
[8 9]]
문제 3) 아래의 배열의 원소들의 평균값을 출력하시오
답)
import numpy as np a = np.array([1,2,4,5,5,7,10,13,18,21]) print(np.mean(a)) |
8.6
추가 문제)
import numpy as np a = np.array([1,2,4,5,5,7,10,13,18,21]) print(np.mean(a)) print(np.median(a)) print(np.max(a)) print(np.min(a)) print(np.std(a)) print(np.var(a)) |
8.6
6.0
21
1
6.437390775772433
41.44
문제 4) 아래의 행렬식을 numpy로 구현하시오
보기)
array([[1, 3, 7], [1, 0, 0]]) 와 array([[0, 0, 5], [7, 5, 0]]) 의 합을 구하시오 |
답)
import numpy as np a = np.array([[1,3,7], [1,0,0]]) b = np.array([[0,0,5], [7,5,0]]) print(a+b) |
numpy의 기능
문제 5) 위의 그림 중 두번째 그림의 브로드캐스트를 numpy로구현하시오
답)
import numpy as np a = np.array([[1,2], [3,4]]) b = np.array([10,20]) print(a*b) |
[[10 40]
[30 80]]
문제 6) 아래의 행렬식을 numpy로구현하고 아래의 요소에서 15 이상인 것만 출력하시오
보기)
[[51 55] [14 19] [ 0 4]] |
답)
import numpy as np a = np.array([[51,55], [14,19], [0,4]]) # 방법 1 print('방법1:',a[a>=15]) # 방법 2 a = a.flatten() # 1차원 배열로 변환 # print(a) b = [] for i in a: if i >= 15 : b.append(i) print('방법2:',b) |
방법 1: [51 55 19]
방법 2: [51, 55, 19]
문제 7) 위의 문제를 numpy를이용하지 말고 구현하시오
보기)
[[51 55] [14 19] [ 0 4]] |
답)
m = [[51,55], [14,19], [0,4]] row_len = len(m) # 행의 개수 col_len = len(m[0]) # 열의 개수 m2 = [] for i in range(row_len): for j in range(col_len): if m[i][j] >= 15: m2.append(m[i][j]) print(m2) |
[51, 55, 19]
문제 8) 아래의 문제를 numpy를이용하지 말고 구현하시오
보기)
1 3 7 0 0 5 1 3 12 1 0 0 + 7 5 0 = 8 5 0 |
답)
m = [[1,3,7], [1,0,0]] m2 = [[0,0,5], [7,5,0]] print(m) print(m2) res = [[0,0,0], [0,0,0]] # np.zeros([3,3]) 로 쉽게 만들 수도 있다. row_len = len(m) col_len = len(m[0]) for i in range(row_len): for j in range(col_len): res[i][j] = m[i][j] + m2[i][j] print(res) |
[[1, 3, 7], [1, 0, 0]]
[[0, 0, 5], [7, 5, 0]]
[[1, 3, 12], [8, 5, 0]]
문제 9) numpy의브로드캐스트를 사용한 연산을 numpy를이용하지 않고 구현해보시오
보기)
결과 : [[10,40], [30, 80]] |
답)
m = [[1,2], [3,4]] m2 = [[10,20]] print(m) print(m2) res = [[0,0], [0,0]] # np.zeros([2,2]) 로 쉽게 생성 가능 row_len = len(m) col_len = len(m[0]) for i in range(row_len): for j in range(col_len): res[i][j] = m[i][j] * m2[0][j] print(res) |
[[1, 2], [3, 4]]
[[10, 20]]
[[10, 40], [30, 80]]
문제 10) (점심시간 문제) 아래의 브로드캐스트를 numpy 이용하지 않고 파이썬으로 구현하시오
답)
m = [[1,2], [3,4]] m2 = [[10]] print(m) print(m2) res = [[0,0], [0,0]] # np.zeros([2,2]) 로 쉽게 생성 가능 row_len = len(m) col_len = len(m[0]) for i in range(row_len): for j in range(col_len): res[i][j] = m[i][j] * m2[0][0] print(res) |
반응형
'Deep Learning' 카테고리의 다른 글
딥러닝의 시그모이드(sigmoid), 렐루(Relu), 행렬의 내적 (0) | 2021.12.05 |
---|---|
신경망 함수 종류와 시각화 (step func, sigmoid func) (0) | 2021.12.04 |
딥러닝 파이썬으로 퍼셉트론 AND, OR, NAND, XOR 게이트 구현하기 (0) | 2021.12.03 |
머신러닝의 종류와 퍼셉트론(Perceptron)의 역사와 예 (0) | 2021.11.29 |
Matplotlib 라이브러리로 시각화하기 (0) | 2021.11.10 |