반응형
Notice
Recent Posts
Recent Comments
Link
Today
Total
07-05 05:44
«   2024/07   »
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 29 30 31
Archives
관리 메뉴

iOS 개발 기록 블로그

밑바닥부터 시작하는 딥러닝 교재 공부 시작하기 본문

Deep Learning

밑바닥부터 시작하는 딥러닝 교재 공부 시작하기

crazydeer 2021. 11. 8. 21:06
반응형

교재

밑바닥부터 시작하는 딥러닝

 

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)

 

반응형