deeplearning (8) 썸네일형 리스트형 7장. 합성곱 신경망(CNN) ■ CNN ( 합성곱 신경망 ) Convolution Neural Network 합성곱 신경 망 합성곱 신경망? "Convolution 층과 pooling 층을 포함하는 신경망" 기존 신경망과의 차이? -기존 방법: Affine ---> Relu (완전연결계층) -CNN : Conv ----> Relu ----> Pooling ----> 완전연결계층 CNN을 배워야 하는 이유? -기존에 구현했던 완전 연결 계층(완전연결계층)의 문제점을 극복하기 위해서 *문제점: 이미지 형상을 무시한다 ■ 기존에 구현했던 완전 연결 계층의 문제점 "데이터의 형상이 무시된다" http://cafe.daum.net/oracleoracle/SY3L/174 *CNN을 이용하지 않은 기존층의 문제점 필기체 ---> 28 x 28 .. 6장. 신경망을 학습시키는 여러 기술들 소개(경사하강법의 종류, 배치 정규화, 드롭아웃) ■ 신경망을 학습시키는 여러 기술들 소개(경사하강법의 종류, 배치 정규화, 드롭아웃) 1. 고급 경사 감소법들----------->underfitting 을 막기 위해 2. 가중치 초기화값 설정--------->underfitting 을 막기 위해 3. 배치 정규화------------------->underfitting 을 막기 위해 4. DropOut 기법------------------------>overfitting을 막기 위해 5. 기타 방법 ( 이미지 한 장을 회전, 밝기, 반전을 시켜서 여러개의 이미지를 만들어서 학습을 시키는 방법 ) "학습이 잘 되도록 데이터를 생성하는 방법" ■ 1. 고급 경사 감소법들 1. SGD 2. Momentum 3. Adagrade 4. Adam ■ 1. SGD.. 5장. 오차 역전파 ( 계산 그래프, 연쇄법칙, 역전파 ) ■ 오차 역전파를 이용한 3층 신경망 학습시키는 방법 4장에서는 순전파를 배웠고 또 가중치를 갱신하기 위한 기울기를 구하기 위해 수치미분을 배웠다. 순전파 + 가중치 갱신 ( 수치미분을 이용해서 ) ※ 역전파 ? 신경망 학습 처리에서 최소화되는 함수의 경사를 효율적으로 계산하기 위한 방법으로 "오류 역전파" 가 있다. -함수의 경사(기울기)를 계산하는 방법? 1. 수치미분 은닉층 ---> 출력층 -역전파: 입력층 은닉1층 rout1 = relu1.forward(out1) # 은닉1층 (순)relu1 out2 = layer_2.forward(rout1) # 은닉1층->은닉2층 rout2 = relu2.forward(out2) #은닉2층 (순)relu2 out3 = layer_3.forward(rout2) .. 4장. 인공 신경망을 학습시킴(손실(오차)함수, 수치 미분, 경사하강법, 학습 알고리즘 구현) 3장까지의 전체 코드: import sys, os sys.path.append(os.pardir) import numpy as np from dataset.mnist import load_mnist from PIL import Image import pickle import numpy as np # 신경망 함수들 def sigmoid(num): rst = (1 / (1 + np.exp(-num))) return (rst) def identity_function(x): return x def softmax(a): c = np.max(a) minus = a - c exp_a = np.exp(minus) sum_exp_a = np.sum(exp_a) y = exp_a / sum_exp_a return y de.. 3장. 인공 신경망 ( 신경망의 활성화 함수, 3층 신경망 구현 ) ■인공 신경망 ( 신경망의 활성화 함수, 3층 신경망 구현 ) 퍼셉트론 -----------------------> 신경망 ↓ and 게이트 or 게이트 nand 게이트 xor 게이트 결과를 보려면 w를 사람이 직접 ----> 신경망은 w를 랜덤으로 지정해주기만 하면 정해줬어야 했는데 컴퓨터가 알아서 w를 알아낸다 ■ 활성화 함수(p.66) "입력신호의 총 합을 출력신호로 변환하여 신호를 보낼 지 안 보낼지 결정하는 함수" "신호를 강하게 보낼지 약하게 보낼지를 결정하는 함수" k = x0*w0 + x1*w1 + x2*w2 ■ 활성화 함수의 종류 3가지 (x가 입력값, y가 출력값) 1. step 함수(계단함수) -숫자 0과 1을 출력(리턴)하는 함수 -0은 신호 안흐름/ 1은 신호 흐름 -0과 1사이의.. 2장. 퍼셉트론Perceptron ■퍼셉트론 퍼셉트론? "인간의 뇌세포 중 하나를 컴퓨터로 구현해 봄 (뉴런) " *뉴런의 갯수 1. 사람: 850억개 2. 고양이: 10억개 3. 쥐: 7천 5백만개 4. 바퀴벌레: 몇백만개 5. 하루살이: 지금현재까지 나온 최첨단 인공지능의 뉴런 수 보다 많다. "1957년에 프랑크 로젠 블라트가 퍼셉트론 알고리즘을 고안했다. 사람의 뇌의 동작을 전기 스위치인 온/오프로 흉내 낼 수 있다는 이론을 증명했다" "인간의 신경세포 하나하나를 흉내낸 것이다. 고등학교 생물시간에 배운 3가지 용어? 1.자극(stimulus) 2. 반응(response) 3. 역치(threshold) "특정 자극이 있다면 그 자극이 어느 역치 이상일 때 세포가 반응한다. 예를 들면, 짜게 먹는 사람은 자기가 평소에 먹는 만큼 음.. 1장. deeplearning에 필요한 파이썬 기본문법 ■ 이 책을 보기위해 필요한 파이썬 기본문법 ■ numpy 란?(p.36) -python 언어에서 기본적으로 지원하지 않는 배열array 혹은 행렬matrix 의 계산을 쉽게 해주는 라이브러리 -머신러닝에서 많이 사용하는 선형대수학에 관련한 수식들을 python 에서 쉽게 프로그래밍 할 수 있게 해준다. ※ 다차원 배열(p.77) 다차원 배열도 그 기본은 '숫자의 집합'입니다. 숫자가 한 줄로 늘어선 것이나 직사각형으로 늘어놓은 것, 3차원으로 늘어놓은 것이나 (더 일반화한) N차원으로 나열하는 것을 통틀어 다차원 배열이라고 합니다. 문제1. 아래의 행렬을 numpy 로 만드시오 import numpy as np a=np.array( [[1,2],[3,4]]) print(a) 결과: [[1 2] [3 4.. Intro.딥러닝 소개 ■ 딥러닝 이란? 딥러닝 ------> 텐써플로우를 이용해서 신경망을 구현 목표: "이미지를 분류할 수 있는 신경망을 구현" 구체적인 예: 정상 폐사진 VS 폐결절 사진을 구분 제조업에서 만드는 제품들의 불량 여부 확인 정상 이파리 VS 질병에 걸린 이파리 ■ 딥러닝 수업 인공지능의 눈? cnn 사진속에 사람, 동물 등을 구별할 수 있다. 다음 카카오 로드뷰에서 사람 얼굴이나 차 번호등은 개인정보 보호법상 반드시 모자이크 처리해야 하는데, 이것을 일일이 사람이 할 수 없다. 그래서 컴퓨터에게 모자이크 처리 하라고 시켜야 한다. 딥러닝 기술로 할 수 있다. 제조업에서 만드는 제품들의 불량 여부를 확인하는 직업이 품질관리사인데 그 역할을 컴퓨터가 대신할 수 있다. 관련 영상 : https://www.yout.. 이전 1 다음