일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- one-hot vector
- 밑바닥부터 시작하는 딥러닝
- 프로그래머를 위한 선형대수
- 판다스
- 연립일차방정식
- machine translation
- word embedding
- NLP
- 동시발생 행렬
- Python
- Transformer
- word2vec
- NMT
- 정칙행렬
- pandas
- DataFrame
- 신경망 학습
- 선형대수학
- 딥러닝
- 밑바닥부터 시작하는 딥러닝2 2장
- RNN
- 자연어처리
- 벡터간 유사도
- 데이터프레임
- ReLU
- PPMI
- sigmoid
- 역행렬
- Linear Algebra
- SVD
- Today
- Total
목록딥러닝 (10)
생각하는감자

자연어처리란? NLP(Natural Language Processing), 자연어처리는 말 그대로 우리가 사용하는 말을 컴퓨터가 이해하도록 처리하는 기술 분야이다. 우리가 사용하는 언어는 문장의 뜻이 애매할 수도 있고, 같은 의미를 가지고 있더라도 다양하게 표현할 수 있으며, 세월의 변화에 따라 말의 의미가 변형되거나 새로운 단어가 생겨날 수 있다는 특징이 있다. 이와 다르게 컴퓨터언어는 기계적이고 고정되어 있다는 특징이 있다. 컴퓨터에게 자연어를 이해시키는 테스크는 쉽지 않은 기술이 필요하지만, 컴퓨터가 자연어를 이해할 수 있게 된다면 많은 사람들에게 도움이 되는 일들을 컴퓨터에게 시킬 수 있게 된다. 자연어처리를 응용한 예로는 검색엔진이나 기계번역, 질의응답 시스템, 감정분석 등이 있다. 단어의 의미..

딥러닝은 층을 깊게 만든 신경망이다. 층을 깊게 만든다는 것의 중요성에 대한 명확한 근거는 마려되어있지 않지만, 몇가지 실험과 연구를 통해 그 중요성을 파악할 수 있다. 먼저, ILSVRC 라는 이미지 인식 대회의 결과에서 파악할 수 있는데, 이 대회에서 상위를 차지한 기법 대부분이 딥러닝 기반이며, 층의 깊이에 비례해 정확도가 좋아지는 결과를 볼 수 있다. 층을 깊게 할 때의 이점 신경망의 매개변수 수가 줄어든다. 층이 깊은 신경망은 그렇지 않은 신경망보다 적은 매개변수로 동일하거나 그 이상의 표현력을 달성할 수 있다. 합성곱 연산에서의 필터 크기로 생각해보면 이해하기 쉽다. 5 x 5 필터로 구성된 입력데이터가 있을 때, 출력데이터는 5*5 연산을 수행하므로 매개변수 수가 25개 이다. 위의 합성곱 ..

"합성곱"이라는 개념을 간단히 정의해 보면 "두 함수 중 하나를 반전(reverse), 이동(shift)시켜가며 나머지 함수와의 곱을 연이어 적분한다"이다. 구조 CNN은 특히 이미지 인식 분야에서 활용되는 딥러닝 기법들의 기초가 되는 신경망이다. 지금까지 봐온 신경망처럼 계층을 조합하여 만들 수 있지만, 합성곱계층(convolutional layer)과 풀링계층(pooling layer)이 등장한다. 지금까지의 신경망은 인접하는 계층의 모든 뉴런과 결합되어 있었는데 이러한 연결을 완전연결(Fully Connected)이라고 하며, Affine 계층이라고 부른다. 하나의 Affine 계층 뒤에 ReLU 혹은 Sigmoid계층이 붙어 Affine-ReLU 조합으로 층을 쌓아가고 마지막에는 Softmax 계..

최적화 매개변수의 최적값을 찾는 문제를 푸는 것을 최적화라고 하고, 매개변수의 최적값을 찾는다는 것은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것이다. 앞서 확인한 최적의 매개변수 값을 찾는 방법은 매개변수의 기울기를 이용하는 것이었다. 이를 확률적 경사 하강법이라고 했다. 확률적 경사 하강법(SGD) SGD는 단순하고 구현이 쉽다는 장점이 있지만, 문제에 따라 비효율적일 수도 있다. 비등방성함수, 즉, 방향에 따라 다른 성질을 가지는 함수에서는 탐색 경로가 비효율적이라는 단점이 있는데, SGD의 최적화 갱신경로를 알아보면 아래와 같다. 예를 들어 아래와 같은 함수의 최솟값을 구하는 문제를 생각해 보면, 최솟값을 가지는 장소는 (0,0)이지만 기울기 대부분은 (0,0) 방향을 가리키지 않는다...

계산그래프의 역전파 계산그래프의 순전파가 계산 결과를 왼쪽에서 오른쪽으로 전달한 것과 다르게 역전파는 '국소적인 미분'을 순전파와는 반대로 오른쪽에서 왼쪽으로 전달한다. 이것을 전달하는 원리는 연쇄법칙에 따른다. 위의 그림에서 역전파의 계산 절차는 신호 E에 노드의 국소적 미분을 곱한 후 다음 노드로 전달하는 것이다. 이러한 방식으로 계산을 하면 목표로 하는 미분값을 효율적으로 구할 수 있다는 것이 역전파의 핵심이며 어떻게 그게 가능한 건지는 연쇄법칙의 원리로 설명할 수 있다. 연쇄법칙(chain rule) 연쇄법칙의 원리는 생각보다 간단하다. "합성 함수의 미분은 합성 함수를 구성하는 각 함수의 미분의 곱으로 나타낼 수 있다"가 연쇄법칙의 원리이다. 즉, 연쇄법칙은 합성함수의 미분에 대한 성질이다. 역..

학습 학습(train)이라는 것은 훈련용 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 과정이다. 신경망이 학습할 수 있도록 해주는 지표를 손실함수라고 한다. 결과적으로 손실함수를 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습과정의 목표라고 할 수 있다. 신경망의 특징은 데이터에서 학습할 수 있다는 것이다. 이것은 수만~수억 개의 매개변수를 수작업으로 직접 사람이 정한다는 것은 불가능하다고 할 수 있는데, 데이터를 보고 가중치 매개변수의 값을 자동으로 결정한다는 것은 매우 큰 장점이다. 훈련데이터 & 시험데이터 신경망을 학습시키기에 앞서 전체 데이터셋을 훈련용과 시험용으로 구분짓는 것은 매우 중요하고 당연히 해야 할 일 중 하나이다. 먼저, 훈련데이터(training data)를 사용하여..

신경망 퍼셉트론을 사용할 때의 단점은 여전히 원하는 결과를 출력하기 위해서는 사람이 수동적으로 가중치 값을 적절히 정해야 한다는 것이다. 신경망이 이 점을 해결해 주는데, 신경망은 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력을 가지고 있다. 예를 들어 간단한 신경망을 그림으로 나타내면 아래와 같다. 가장 왼쪽 줄을 입력층이라 하고, 가장 오른쪽 줄을 출력층이라고 하며, 그 사이에 있는 줄들은 은닉층이라고 한다. 2장에서 언급한 퍼셉트론을 활용하여 신경망의 신호전달방법을 살펴보자면, 퍼셉트론을 수식으로 나타내면 아래와 같았다. b는 편향(bias)을 나타내는 매개변수인데, 뉴런이 얼마나 쉽게 활성화되는지를 제어하는 역할을 한다. w는 각 신호의 가중치(weight)를 나타내는 매개변수..

퍼셉트론 퍼셉트론 알고리즘은 프랑크 로젠블라트가 1957년에 고안한 매우 오래된 알고리즘으로, 딥러닝(신경망)의 기원이 되는 알고리즘이다. 퍼셉트론은 입력으로 다수의 신호를 받아서 하나의 출력신호를 내는 것이다. 해당 신호가 "흐르는 것"을 "1"이라고 표현하고 "흐르지 않는 것"을 "0"이라고 표현할 예정이다. 입력신호가 2개인 퍼셉트론을 예시로 들어 나타내보면 아래의 그림과 같다. 입력신호에 각각의 가중치(weight)를 곱하고 그 총합이 정해진 한계값(임계값)을 넘으면 1, 넘지 않으면 0을 출력하는 것이다. 1이 출력되는 것을 "뉴런이 활성화된다"라고 표현하기도 한다. *퍼셉트론의 가중치 : 그 값이 클수록 강한 신호를 흘려보낸다. 즉, 신호를 얼마나 잘 흐르게 하는가를 통제하는 기능을 하는 것이..

밑바닥부터 시작하는 딥러닝 딥러닝에 대해 학습했던 것을 복습하는 과정이 필요하다고 생각하여 진행하게 된 딥러닝복습.. 책을 활용하여 이론 정리 및 실습을 진행할 예정이고 앞으로 작성할 모든 게시물은 해당 책과 자료를 참고할 예정이다. 파이썬 파이썬은 등장한지 이미 오래된 언어이지만 많은 진화를 거쳐 아직도 많은 개발자들이 애용하는 언어이다. 파이썬을 활용하여 딥러닝을 구현할 예정이고, 파이썬과 numpy, matplotlib을 주로 활용하여 실습을 진행할 예정이다. 기본적으로 파이썬을 활용할 수 있는 수준이기 때문에 특별히 정리하진 않을 예정이다.

활성화 함수(Activation Function)란? 인공신경망의 은닉층에 사용되는 함수. 인공신경망에서는 이전 레이어에서 출력된 값을 입력으로 받아서 어떠한 함수를 통과시킨 후 그 결과를 다음 레이어로 출력하는 것, 이때 "어떠한 함수"를 "활성화 함수"라고 함. 활성화 함수 종류 비선형 활성화 함수 선형 활성화 함수 이진 활성화 함수 위의 세가지 활성화 함수 종류가 있지만, 비선형 활성화 함수를 사용하는 것이 바람직함. 그 이유는, 선형의 경우 → 역전파가 불가능하고, 레이어를 깊게 쌓는것의 의미가 사라짐 이진의 경우 → 다중 출력이 불가능함 따라서 어디선가 다 들어본 함수들은 거의 대부분 비선형. 예를들어, Sigmoid Softmax tanh(하이퍼볼릭탄젠트) ReLU Leaky ReLU 등등등 ..