본문 바로가기

전체

(37)
2장 : 자연어와 단어의 분산 표현 2.1 자연어 처리란 Natural Language Processing(NLP): 우리의 말을 컴퓨터에게 이해시키기 위한 기술 2.1.1 단어의 의미 우리의 말은 '문자'로 구성, 말의 의미는 '단어'로 구성 단어 : 의미의 최소 단위 2.2 시소러스 : (기본적으로는) 유의어 사전 자연어 처리에 이용되는 시소러스에서는 단어 사이의 '상위와 하위' 혹은 '전체와 부분' 등 더 세세한 관계까지 정의 2.2.1 WordNet : 자연어 처리 분야에서 가장 유명한 시소러스 유의어를 얻거나 단어 네트워크 이용 가능 단어 네크워크를 사용해 단어 사이의 유사도 구할 수 있음 2.2.2 시소러스의 문제점 사람이 수작업으로 레이블링하는 방식 결점 1) 시대 변화에 대응하기 어렵다. 2) 사람을 쓰는 비용은 크다. 3)..
1장 : 신경망 복습 1.3 신경망의 학습 1.3.1 손실함수 교차 엔트로피 오차(Cross Entropy error) 이용 소프트맥스 함수의 출력(확률)이 교차 엔트로피에 입력 확률과 정답 레이블의 오차를 계산 : 손실함수 softmax with Loss 계층 하나로 구현 1.3.2 미분과 기울기 각 원소에 대한 미분을 정리한 것이 기울기 gradient 행렬과 기울기의 형상이 같음 수학에서의 기울기는 벡터에 대한 미분으로 한정된 것과 달리 딥러닝에서는 행렬이나 텐서에 대해서도 미분을 정의하고 기울기라 부름 1.3.3 연쇄 법칙 : 합성함수에 대한 미분의 법칙 -> 많은 함수를 연결하더라도 그 미분은 개별 함수의 미분들을 이용해 구할 수 있음 1.3.4 계산 그래프 각 노드의 역전파 덧셈 노드 : 상류로부터의 기울기 그대로..
8장 : 딥러닝 8.1 더 깊게 8.1.1 더 깊은 신경망으로 3x3의 작은 필터 사용한 합성곱 계층 활성화 함수는 ReLU 완전연결 계층 뒤에 드롭아웃 계층 사용 Adam을 사용해 최적화 가중치 초깃값은 He 초깃값 -> 정확도 99.38%까지 올라감 8.1.2 정확도를 더 높이려면 데이터 확장 (data augmentation) : 입력 이미지를 알고리즘을 동원해 '인위적'으로 확장 입력 이미지를 회전하거나 세로로 이동 crop: 이미지 일부를 잘라냄 filp: 좌우를 뒤집음 밝기 등의 외형 변화 확대, 축소 등의 스케일 변화 8.1.3 깊게 하는 이유 신경망의 매개변수 수가 줄어든다. 층을 깊게 한 신경망은 깊지 않은 경우보다 적은 매개변수로 같은 수준의 표현력 달성 가능 -> 넓은 수용 영역 소화 가능 층을 거듭..
7장 : 합성곱 신경망(CNN) 7.1 전체 구조 2.1.1 소제목 완전연결(fully-connected, 전결합, 지금까지 본 신경망) Affine 계층 CNN (합성곱 계층 Conv와 풀링 계층 Pooling이 새로 추가) -> 지금까지의 Affine-ReLU 연길이 Conv-ReLU로 바뀜 -> 출력에 가까운 층에서는 Affine-ReLU 구성 사용 -> 출력 계층에서는 Affine-Softmax 조합 그대로 사용 7.2 합성곱 계층 7.2.1 완전연결 계층의 문제점 데이터의 형상이 무시됨 3차원 데이터인 이미지 데이터를 평평한 1차원 데이터로 평탄화 공간적 정보 무시 -> 합성곱 계층은 형상 유지 CNN에서는 입출력 데이터를 특징 맵(feature map)이라고 함 7.2.2 합성곱 연산 : 필터 연산 입력 데이터와 필터 모두 ..
6장 : 학습 관련 기술들 6.1 매개변수 갱신 최적화 : 손실 함수의 값을 가능한 한 낮추는 최적의 매개변수를 찾는 것 6.1.2 확률적 경사 하강법(SGD) #SGD class SGD: def __init__(self, lr=0.01): self.lr = lr def update(self, params, grads): for key in params.keys(): params[key] -= self.lr*grads[key] params 매개변수들에 대해 learning rate * key에 대한 gradient만큼 빼주는 방법 6.1.3 SGD의 단점 비효율적 현재 장소에서 기울어진 방향을 따라서 이동하는데, 현재 위치에서 기울어진 방향이 global minimum의 방향과 차이가 날 수 있어서 지그재그를 그리면서 비효율적인 ..
5장 : 오차역전파법 수치 미분을 사용해 가중치 매개변수에 대한 손실 함수의 기울기를 구하는 방법은 계산 시간이 오래 걸린다는 단점 -> 오차역전파법 : 효율적으로 계산 가능 5.1 계산 그래프 5.1.1 계산 그래프로 풀다 문제 : 슈퍼에서 사과 2개, 귤을 3개 구매. 사과는 1개에 100원, 귤은 1개 150원. 소비세가 10%일 때 지불 금액 구하기 문제 풀이: 계산 그래프를 구성한다. 그래프에서 계산을 왼쪽에서 오른쪽으로 진행한다. : 순전파 5.1.2 국소적 계산 계산 그래프의 특징: 국소적 계산을 전파함으로써 최종 결과를 얻음 전체에서 어떤 일이 벌어지든 상관없이 자신과 관계된 정보만으로 결과 출력 가능 5.1.3 왜 계산 그래프로 푸는가? 국소적 계산 가능 중간 계산 결과 모두 보관 가능 역전파를 통해 미분을 ..
4장 : 신경망 학습 학습 : 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것 손실함수 : 신경망이 학습할 수 있도록 해주는 지표 학습의 목표 : 손실함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 것 4.1 데이터에서 학습한다! 4.1.1 데이터 주도 학습 데이터 -> 특징(feature) 추출 -> 패턴 학습 (기계학습: SVM, KNN) 특징 : 입력 데이터에서 본질적인 데이터를 정확하게 추출할 수 있도록 설계된 변환기 (보통 벡터로 기술) 한계 : 특징은 여전히 사람이 설계해야 함 -> 신경망은 특징까지 기계가 스스로 학습 (종단간 기계학습 : 처음부터 끝까지 기계가 학습) 4.1.2 훈련 데이터와 시험 데이터 기계학습 문제는 데이터를 훈련 데이터와 시험 데이터로 나눠 학습과 실험을 수행하는..
3장 : 신경망 퍼셉트론의 가중치 - 사람이 수동적으로 설정해야 함 신경망 : 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력 신경망이 입력 데이터가 무엇인지 식별하는 처리 과정 : 활성화 함수 3.1 퍼셉트론에서 신경망으로 3.1.3 활성화 함수 : 입력 신호의 총합을 출력 신호로 변환하는 함수 입력 신호의 총합이 활성화를 일으키는 지 정하는 역할 단순 퍼셉트론 : 단층 네트워크에서 계단 함수를 활성화 함수로 사용한 모델 다층 퍼셉트론 : 신경망 (여러 층으로 구성, 시그모이드 함수 등의 매끈한 활성화 함수 사용하는 네트워크) 3.2 활성화 함수 3.2.1 시그모이드 함수 참고: https://gooopy.tistory.com/52 3.2.2 계단 함수 구현 import numpy as np impo..