케라스 창시자에게 배우는 딥러닝 19

2부 5.1 합성곱 신경망 소개

2부 실전 딥러닝 5장 컴퓨터 비전을 위한 딥러닝 5.1 합성곱 신경망 소개 완전 연결된 모델보다 컨브넷이 더 잘 작동됨. Dense층은 입력 특성 공간에 있는 전역 패턴을 학습하지만 합성곱 층은 지역 패턴을 학습함. 이미지일 경우 작은 2D 윈도우로 입력에서 패턴을 찾음. 컨브넷의 2가지 성질 1. 학습된 패턴은 평행 이동 불변성을 가짐. 2. 컨브넷은 패턴의 공간적 계층 구조를 학습할 수 있음. 패딩 입력 특성 맵의 가장자리에 적절한 개수의 행과 열을 추가 입력과 동일한 높이와 너비를 가진 출력 특성 맵을 얻고 싶을 때 사용 (경계 문제를 해결해줌.) 스트라이드 두 번의 연속적인 윈도우 사이의 거리로 합성곱의 파라미터 기본값은 1이며 스트라이드가 1보다 큰 스트라이드 합성곱도 가능 스트라이드 2를 사..

1부 4.5 보편적인 머신 러닝 작업 흐름

1부 딥러닝의 기초 4장 머신 러닝의 기본 요소 4.5 보편적인 머신 러닝 작업 흐름 문제 정의와 데이터셋 수집 입력 데이터와 출력 데이터 확인 성공 지표 선택 정확도일지 정밀도일지 재현율일지 등 성공의 지표를 잘 생각해 선택해야 함. 성공의 지표가 모델의 최적화할 손실 함수를 선택하는 기준이 됨. 클래스 분포가 균일한 분류 문제 : 정확도 / ROC / AUC가 일반적 클래스가 균일하지 않은 문제 : 정밀도 / 재현율이 일반적 랭킹 문제나 다중 레이블 문제 : 평균 정밀도 사용 가능 캐글에서 다양한 문제들과 측정 지표들을 볼 수 있음. 평가 방법 선택 홀드아웃 검증 세트 분리 데이터가 풍부할 때 사용 K-겹 교차 검증 홀드아웃 검증을 사용하기에 샘플의 수가 너무 적을 때 사용 반복 K-겹 교차 검증 데..

1부 4.4 과대적합과 과소적합

1부 딥러닝의 기초 4장 머신 러닝의 기본 요소 4.4 과대적합과 과소적합 최적화(optimization) 가능한 훈련 데이터에서 최고의 성능을 얻으려고 모델을 조정하는 과정 일반화(generalization) 훈련된 모델이 이전에 본 적 없는 데이터에서 얼마나 잘 수행되는지 의미 과소적합(underfitting) 훈련 데이터의 손실이 낮아질수록 테스트 데이터의 손실도 낮아짐. 과대적합(overfitting) 훈련 데이터가 여러 번 반복 학습하고 나면 어느 시점붜 일반화 성능이 더 이상 높아지지 않고 검증 세트의 성능이 멈추고 감소되기 시작함. 훈련 데이터가 많으면 일반화 성능이 뛰어나짐. 규제 기법 종류 규제 기법 데이터를 더 모으는 것이 불가능할 때 차선책은 모델이 수용할 수 있는 정보의 양을 조절하..

1부 4.3 데이터 전처리, 특성 공학, 특성 학습

1부 딥러닝의 기초 4장 머신 러닝의 기본 요소 4.3 데이터 전처리, 특성 공학, 특성 학습 신경망을 위한 데이터 전처리 [목적] 주어진 원본 데이터를 신경망에 적용하기 쉽도록 만드는 것 [종류] 벡터화 / 정규화 / 누락된 값 다루기 / 특성 추출 등 벡터화 신경망에서 모든 입력과 타깃은 부동 소수 데이터로 이루어진 텐서여야 함. 사운드, 이미지, 텍스트 등 처리해야 할 것이 무엇이든지 먼저 텐서로 변환해야 함. 값 정규화 권장하는 정규화 방법 각 특성별로 평균이 0이 되도록 정규화 각 특성별로 표준 편차가 1이 되도록 정규화 일반적으로 비교적 큰 값이나 균일하지 않은 데이터를 신경망에 주입하는 것은 위험함. 이렇게 하면 업데이트할 그래디언트가 커져 네트워크가 수렴하는 것을 방해 네트워크를 쉽게 학습..

1부 4.2 머신 러닝 모델 평가

1부 딥러닝의 기초 4장 머신 러닝의 기본 요소 4.2 머신 러닝 모델 평가 훈련, 검증, 테스트 세트 모델 평가의 핵심은 가용한 데이터를 항상 훈련, 검증, 테스트 3개의 세트로 나누는 것 훈련 세트 - 모델 훈련 / 검증 세트 - 모델 평가 / 테스트 세트 - 출시 준비가 완료된 모델을 최종적으로 딱 한 번 테스트 3개로 나누는 이유는 모델을 개발할 때 항상 모델의 설정을 튜닝하기 때문 정보 누설 검증 세트의 모델 성능에 기반하여 모델의 하이퍼파라미터를 조정할 때마다 검증 데이터에 관한 정보가 모델로 새는 것 이를 막기 위해 검증 세트와 테스트 세트를 구분 단순 홀드아웃 검증 데이터의 일정량을 테스트 세트로 떼어놓음. 남은 데이터에서 훈련하고 테스트 세트로 평가함. 정보 누설을 막기 위해 테스트 세트..

1부 4.1 머신 러닝의 네 가지 분류

1부 딥러닝의 기초 4장 머신 러닝의 기본 요소 4.1 머신 러닝의 네 가지 분류 지도 학습 타깃에 입력 데이터를 매핑하는 방법을 학습 (이진 분류, 다중 분류, 스칼라 회귀, 문자 판독, 음성 인식, 이미지 분류, 언어 번역 등) 시퀀스 생성 사진이 주어지면 이를 설명하는 캡션을 생성 일련의 분류 문제로 재구성 가능 구문 트리 예측 문장이 주어지면 분해된 구문 트리를 예측 물체 감지 사진이 주어지면 사진 안의 특정 물체 주위에 경계 상자를 그림. 분류 문제로 표현되거나, 경계 상자의 좌표를 벡터 회귀로 예측하는 회귀와 분류가 결합된 문제로 표현할 수 있음. 이미지 분할 사진이 주어졌을 때 픽셀 단위로 특정 물체에 마스킹을 함. 비지도 학습 어떤 타깃도 사용하지 않고 입력 데이터에 대한 흥미로운 변환을 ..

1부 3.6 주택 가격 분류: 회귀 문제

1부 딥러닝의 기초 3장 신경망 시작하기 3.6 주택 가격 분류: 회귀 문제 보스턴 주택 가격 데이터셋 1970년 중반 보스턴 외곽 지역의 범죄율, 지방세율 등의 데이터가 주어졌을 때 주택 가격의 중간 값을 예측 입력 데이터에 있는 각 특성의 스케일이 서로 다름. 어떤 값은 0과 1사이의 비율을, 어떤 값은 1과 12사이의 값을 가지거나 1과 100 사이의 값을 가짐. 1. 데이터셋 로드 from keras.datasets import boston_housing (train_data, train_targets), (test_data, test_targets) = boston_housing.load_data() train_data, test_data : 13개의 수치 특성 (1인당 범죄율, 주택당 평균 방..

1부 3.5 뉴스 기사 분류: 다중 분류 예제

1부 딥러닝의 기초 3장 신경망 시작하기 3.5 뉴스 기사 분류: 다중 분류 예제 로이터 데이터셋 (Reuter) 1986년 로이터에서 공개한 짧은 뉴스 기사와 토픽의 집합인 데이터셋 텍스트 분류를 위해 널리 사용되는 간단한 데이터셋 1. 데이터셋 로드 rom keras.datasets import reuters (train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000) train_data, test_data : 단어 인덱스의 정수 리스트 train_labels, test_labels : 0~45 사이의 정수 2.데이터 준비 숫자 리스트에서 텐서로 변경하는 2가지 방법 (1)같은 길이가 되도록 리스트에 ..

1부 3.4 영화 리뷰 분류: 이진 분류 예제

1부 딥러닝의 기초 3장 신경망 시작하기 3.4 영화 리뷰 분류: 이진 분류 예제 IMDB 데이터셋 (Internet Movie Database) 인터넷 영화 데이터베이스로부터 가져온 양극단의 리뷰 5만 개로 이루어짐. 훈련 데이터 2만 5,000개와 테스트 데이터 2만 5,5000개로 나뉘어 있고 각각 50%는 부정, 50%는 긍정 리뷰로 구성 각 리뷰(단어 시퀀스)가 숫자 시퀀스로 변환되어 있음. 1. 데이터셋 로드 from keras.datasets import imdb #data load, rottnsms 1만 개로 제한 (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000) train_data, ..

1부 3.3 딥러닝 컴퓨터 셋팅

1부 딥러닝의 기초 3장 신경망 시작하기 3.3 딥러닝 컴퓨터 셋팅 최신 NVIDIA GPU 권장 유닉스 운영체제 권장 주피터 노트북 딥러닝 실험을 위한 최적의 방법 노트북 애플리케이션으로 만든 파일로 웹 브라우저에서 작성하게 함. 서식 있는 텍스트 포멧을 지원하며 파이썬 코드를 대화식으로 개발할 수 있음. 오픈 소스 노트북 파일로 예제 제공 (https://github.com/gilbutITbook/006975) 케라스를 시작하는 2가지 방법 1. 클라우드에서 딥러닝 작업 수행 공식 EC2 딥러닝 AMI를 사용해 EC2에서 주피터 노트북으로 케라스 예제 실행 로컬 컴퓨터에 GPU가 없을 때 적합 2. 로컬 유닉스 컴퓨터에서 딥러닝 작업 수행 처음부터 모든 것을 설치 주피터 노트북이나 일반 파이썬 스크립..