목록밑.시.딥 (27)
모두야
단어의 의미를 주변 단어에 의해 형성된다. 추론 기반 기법 word2vec 통계 기반 기법의 문제점 말뭉치의 어휘 수가 많으면 SVD 로 계산량이 큰 작업을 처리하기 어렵다. 통계 기반 기법 : 학습 데이터를 한꺼번에 처리한다. (배치 학습) 추론 기반 기법 : 학습 데이터 일부를 순차적으로 학습한다. (미니배치 학습) 추론 기반 기법 : 추론 문제를 풀고 학습 하는 것 : 단어의 출현 패턴을 학습 하는 것 추론 기법에는 신경망 모델이 등장한다. 모델은 맥락 정보를 입력받아 출현하는 각 단어의 출현 확률을 출력한다. 원핫 표현(원핫 벡터) 단어-> 고정 길이 벡터로 변환하여 신경망에서 단어를 처리한다. 신경망의 화살표에 가중치(매개변수)가 존재하여, 입력층 뉴런과 가중치의 합이 은닉층이 된다. 완저연결계..
자연어 처리 -> 컴퓨터가 우리가 하는 말을 알아듣게(이해하게) 만드는 것이다. 고전적인 기법 (딥러닝 이전) 딥러닝 기법 (신경망) 파이썬으로 텍스트를 다루는 연습 - 텍스트를 단어로 분할하는 처리, 단어를 단어 ID로 변환하는 처리 앞으로 텍스트 처리를 위한 사전 준비!!! 자연어 (Natural Language) : 한국어, 영어 등 평소에 우리가 쓰는 말 자연어 처리(Natural Language Processing) : 자연어를 처리하는 분야 : 우리의 말을 컴퓨터에게 이해 시키기 위한 기술 : 사람의 말을 컴퓨터가 이해하도록 만들어서, 컴퓨터가 우리에게 도움이 되는 일을 수행하도록 하는 것 컴퓨터 이해 (프로그래밍 언어 : 딱딱한 언어) 평소 사용하는 말(자연어 : 부드러운 언어- 똑같은 의미..
역전파를 포함하는 계층 구현하기 Sigmoid 계층 Affine 계층 Softmax with Loss 계층 - Softmax 계층 - Cross Entropy Error 계층 Sigmoid 계층 # 역전파 포함 시그모이드 함수 클래스 구현 class Sidmoid: def __init__(self): self.params,self.grads = [],[] self.out = None def forward(self,x): out = 1/(1+np.exp(-x)) self.out = out # y return out def backward(self,dout): #dout = dL/dy dx = dout*(1.0-self.out)*self.out # y*(1-y) return dx Affine 계층 # 역전파..
이전까지 신경망의 추론을 살펴보았다. 학습되지 않은 신경망은 '좋은 추론'을 해낼 수 없다. 따라서 학습을 먼저 수행하고, 학습된 매개변수를 이용하여 추론을 수행하는 흐름이다. 신경망 추론 : 다중 클래스 분류 등의 문제에 대한 답을 구하는 작업 (확률) 신경망 학습 : 최적의 매개변수 값을 찾는 작업 (손실) 3. 신경망 학습 3.1 손실함수 신경망 학습에서 학습이 얼마나 잘되고 있는가를 알기 위한 척도가 필요하다. 학습 단계에서 신경망의 성능을 나타내는 척도로 손실 loss 를 사용한다. 손실 : 학습 데이터(학습 시 주어진 정답 데이터)와 신경망이 예측한 결과를 비교하여, 예측이 얼마나 나쁜가를 나타내는 스칼라값이다. 신경망의 손실은 손실함수 (loss function)을 사용해 구한다. - 다중 ..
한 가지 이상의 방법을 알아내기 전에는 제대로 이해한 것이 아니다. - 마빈 민스키 (컴퓨터과학자/인지과학자) 밑바닥부터 시작하는 딥러닝 1권 전체를 복습하는 장이다. 1. 수학과 파이썬 벡터 행렬 파이썬 코드 넘파이 코드 벡터 : 1차원 배열 행렬 : 2차원 배열 벡터와 행렬을 np.array() 메서드로 생성할 수 있다. np.ndarray 클래스 - 인스턴스 변수 - shape : 다차원 배열 형상 - ndim : 차원 수 백터의 내적 : 두 벡터가 얼마나 같은 방향을 향하고 있는가 : 완전히 같은 방향이면 두 벡터의 내적은 1이다. np.dot() : 벡터의 내적과 행렬의 곱 모두에 사용할 수 있다. : 인수가 모두 1차원 배열이면 벡터의 내적을 계산한다. : 인수가 2차원 배열이면 행렬의 곱을 ..
딥러닝 : 층을 깊게 한 심층 신경망이다. 앞에서 나타나느 신경망 뒷단에 층을 하나 추가하면 심층 신경망이 되긴 하지만, 문제가 몇 개 있다. 신경망 신경망을 구성하는 다양한 계층 학습에 효과적인 기술 영상 분야에 유효한 CNN 매개변수 최적화 기법 => 기술들을 집약하여 심층 신경망을 만들자. 합성곱 Conv 계층 모두 3x3 크기의 작은 필터이다. 층이 깊어지면서 채널 수가 더 늘어난다. => 합성곱 계층의 채널수는 16,16,32,32,64,64로 늘어난다. Why? 풀링 계층을 추가하여 중간 데이터의 공간 크기를 점차 줄여간다. 마지막에서 완전연결 계층은 드롭아웃 계층을 사용한다. 가중치 초깃값 He, 가중치 매개변수 갱신 Adam을 이용한다. 신경망의 특징 3X3의 작은 필터를 사용한 합성곱 계..
대표적인 CNN LeNet (1998) 손글씨 숫자 인식 네트워크 현재 CNN과 비교하면 몇가지 차이가 있다. 차이 1. 활성화 함수 LeNet은 시그모이드 함수를 이용한다. 현재는 주로 ReLu를 사용한다. 차이2. 풀링 LeNet은 서브샘플링(원소를 줄이기만함)을 하여 중간 데이터 크기가 작아진다. 현재는 최대풀링을 이용한다. AlexNet (2012) 딥러닝의 열풍을 일으키는 큰 역할을 하였다. AlexNet은 합성곱 계층과 풀링 계층을 반복하여 마지막은 완전연결 계층을 거져 결과를 출력한다. 활성화 함수로 ReLu를 이용한다. LRN (Local Response Normalization)이라는 국소적 정규화를 실시하는 계층을 이용한다. 드롭아웃을 사용한다.
7.3 풀링 계층 풀링의 종류는 다양하다. 목적은 세로, 가로 방향의 공간을 줄이는 연산이다. 2x2 최대 풀링을 스트라이드 2로 처리하는 그림이다. 2x2 영역 중 가장 큰 원소를 꺼내 출력한다. 보통 스트라이드와 같은 크기로 설정한다. ex) 윈도우 3x3이면 스트라이드=3 평균 풀링도 있다. 풀링 계층의 특징 1. 학습해야 할 매개변수가 없다. 합성곱 계층과 달리 매개변수 학습 과정 없이, 대상 영역에서 최댓값이나 평균을 취하는 처리를 진행한다. 2. 채널수가 변하지 않는다. 입력 데이터 채널수 그대로 출력 데이터를 내보낸다. ( 채널마다 독립적이다.) 3. 입력 변화에 영향을 적게 받는다. 입력 데이터가 조금 변한다고 해서, 풀링의 결과가 크게 변하지는 않는다. 7.4 합성곱/풀링 계층 구현하기 ..
합성곱 신경망 Convolutional Neural Network (CNN) CNN 네트워크 구조 살펴보기 - 계층 조합 - 합성곱 계층 (convolutional layer) - 풀링 계층 (pooling layer) 지금까지 본 신경망은, 인접하는 계층의 모든 뉴런과 결합되어 있었다. [ 완전 연결 (fully-connected 전결합) ] 완전히 연결된 계층을 [ Affine 계층 ] 이라고 구현하였다. 층이 5개인 완전 연결 신경망이다. 완전연결 신경망은 Affine 계층 뒤에 활성화 함수를 갖는 ReLu 계층 (or Sigmoid 계층)으로 이어진다. Affine-ReLu 조합이 4개, 마지막 Affine 계층+Softmax 계층을 통해 최종 결정 (확률)을 출력한다. CNN에는 합성곱Conv와..
신경망 학습에 중요한 개념들 가중치 매개변수의 최적값을 탐색하는 최적화 방법 가중치 매개변수 초깃값 하이퍼파라미터 설정 방법 오버피팅 대응책 -> 가중치 감소, 드롭 아웃 ( 정규화 ) 배치 정규화 ==> 신경망 ( 딥러닝 ) 학습의 효율과 정확도를 높일 수 있다. 6.1 매개변수 갱신 딥러닝의 목적 : 손실 함수 값을 낮추는 매개변수를 찾는다. : 매개변수의 최적값을 찾는다. ====> 최적화 ( Optimization ) 딥러닝 최적화 어렵다... 너무 넓고 복잡하다. 순식간에 수식을 풀어 최솟값을 찾는 방법이 아니다. 매개변수 수도 너무 많다. -> 지금까지는 최적의 매개변수 찾는 방법을 [ 매개변수의 기울기 (미분) ] 을 이용했다. --> 매개변수의 기울기를 구하고, 기울어진 방향으로 매개변수 ..