일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kakao
- dl
- Sigmoid
- que
- 딥러닝
- CBOW
- affine
- 파이썬
- FullyConnectedLayer
- boj
- 프로그래머스
- Heap
- Python
- skip-gram
- stak
- algorithm
- hash
- SQL
- select
- Programmers
- 신경망
- Word2vec
- DeepLearning
- Numpy
- PPMI
- MySQL
- sort
- Stack
- backward
- 자연어처리
- Today
- Total
목록분류 전체보기 (105)
혜온의 이것저것
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bLW5H0/btrEda4EHY7/k5MkeATJLOq5OirlnMzOKK/img.png)
3.5.1 CBOW 모델과 확률 A라는 현상이 일어날 확률은 P(A)라고 쓰고, 동시 확률은 P(A,B)라고 쓴다. 사후 확률은 P(A|B)로 쓴다. B가 주어졌을 때 A가 일어날 확률 이라고 해석할 수 있다. CBOW 모델을 확률 표기법으로 기술해보자. CBOW 모델이 하는 일은 맥락을 주면 타깃 단어가 출현할 확률을 출력하는 것이다. w_t-1과 w_t+1이 주어졌을 때 타깃이 w_t가 될 확률을 수식으로 쓰면 다음과 같다. w_t-1과 w_t+1이 일어난 후 w_t가 일어날 확률을 뜻한다. 그리고 w_t-1과 w_t+1이 주어졌을 때 w_t가 일어날 확률로 해석할 수 있다. CBOW는 위의 식을 모델링하고 있는 것이다. 1장에서 설명한 교차 엔트로피 오차를 적용하면 다음 식을 유도해낼 수 있다. C..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0AMx1/btrAwDWNa6F/bKAzGwvMEClAB8rwOR6KT1/img.png)
우리가 구현할 신경망은 다음과 같다. 우리는 이 신경망을 SimpleCBOW라는 이름으로 구현할 것이다. 클래스의 초기화 메서드부터 시작해보자. import sys sys.path.append('..') import numpy as np from common.layers import MatMul, SoftmaxWithLoss class SimpleCBOW: def __init__(self, vocab_size, hidden_size): V,H=vocab_size, hidden_size # 가중치 초기화 W_in = 0.01*np.random.randn(V,H).astype('f') W_out= 0.01*np.random.randn(H,V).astype('f') # 계층 생성 self.in_layer0=M..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bs7E1x/btrAtK9b5mh/KKEmec27hy9SlkPkIVRk70/img.png)
3.3.1 맥락과 타깃 word2vec에서 이용하는 신경망의 입력은 '맥락'이다. 그리고 그 정답 레이블은 맥락에 둘러싸인 중앙의 단어, 즉 '타깃'이다. 다시 말해, 우리가 해야 할 일은 신경망에 '맥락'을 입력했을 때 '타깃'이 출현할 확률을 높이는 것이다. 그림에서 말뭉치로부터 목표로 하는 단어를 타깃으로, 그 주변 단어를 맥락으로 뽑아냈다. 이 작업을 망뭉치 안의 모든 단어에 대해 수행한다. 이 맥락의 각 행이 신경망의 입력으로 쓰이고, 타깃의 각 행이 정답 레이블이 된다. 참고로, 각 샘플 데이터에서 맥락의 수는 여러 개가 될 수 있으나, 타깃은 올직 하나 뿐이다. 우선 말뭉치 텍스트를 단어 ID로 변환해야 한다. import sys sys.path.append('..') from common...
SELECT * from places where host_id in ( select host_id from places group by host_id having count(id)>=2) order by id 없어진 기록 찾기 https://programmers.co.kr/learn/courses/30/lessons/59042 코딩테스트 연습 - 없어진 기록 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr select animal_..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yA3k5/btryDQYESwv/t6P7n5gR7BSitkIxYkbSD1/img.png)
3.2.1 CBOW 모델의 추론 처리 CBOW 모델은 맥락으로부터 target을 추축하는 용도의 신경망이다. 우리는 CBOW 모델이 가능한 한 정확하게 추론하도록 훈련시켜서 단어의 분산 표현을 얻어낼 것이다. CBOW 모델의 입력은 맥락이다. 가장 먼저, 이 맥락을 원핫 표현으로 변환하여 CBOW 모델이 처리할 수 있도록 준비한다. 입력층이 2개 있고, 은닉층을 거쳐 출력층에 도달한다. 두 입력층에서 은닉층으로의 변환은 똑같은 완전연결계층이 처리하고, 은닉층에서 출력층 뉴런으로의 변환은 다른 완전연결계층이 처리한다. 은닉층의 뉴련은 입력층의 완전연결계층에 의해 변환된 값이 출력되는데, 입력층이 여러 개이면 전체를 평균하면 된다. 출력층의 뉴런은 총 7개인데, 여기서 중요한 것은 이 뉴런 하나하나가 각각의..