전체 글 102

[논문 읽기] Neural Machine Translation by Jointly Learning to Align and Translate (Attention)

Attention 1. seq2seq의 한계 seq2seq란? 인코더 - 디코더라 불리는 두 개의 순환 신경망을 활용해 각각 입력 시퀀스를 벡터화하고 새로운 시퀀스를 출력하는 모델. ex) 기계번역 1) 압축에 따른 정보 손실 문제 인코더가 문장(시퀀스)을 길이에 상관 없이 하나의 고정된 크기의 벡터(Context Vecor)에 모든 정보를 압축하여 정보 손실 발생. 2) RNN의 기울기 소실 문제 기울기가 일정 수준 이하로 작아지면 장기 의존 관계 학습이 어려움. ex) 하이퍼볼릭 탄젠트 함수의 미분 → x가 0에서 멀수록 작아짐. 따라서, 입력 시퀀스(문장) 이 길어져도 출력의 정확도를 지킬 수 있는 기법 필요 → 어텐션! 2. 어텐션(Attention) 어텐션의 기본 아이디어 매 시점마다 전체 입력..

[논문 읽기] Sequence to Sequence Learning with Neural Networks (Seq2Seq)

Seq2Seq(Sequence-to-Sequence) 입력으로서, sequence of item을 받고 아웃풋으로도 sequence를 내어줌. 입력의 sequence of item 개수와 출력의 sequence of item개수는 같을 필요는 전혀 없다 ! ex) 입력을 3단어로 구성된 문장이어도, 4단어로 구성된 문장이 나올 수 있음 가변적인 길이의 source 문장의 문법적, 의미적 특징을 고정된 크기의 벡터로 압축하는 아키텍처 Encoder와 Decoder로 구성되어 있으며, encoder는 문장을 압축하는 역할, decoder는 문장을 생성하는 역할 입력된 정보를 어떻게 저장할 것이냐(인코더) → 어떻게 풀어서 반환할 것인가(디코더) Encoder의 역할 가변적인 길이의 source 문장의 문법적..

[논문 읽기] Generating Sequences With Recurrent Neural Networks (LSTM)

LSTM의 개요 RNN이, hidden state 하나만을 가지고, 모든 time step의 정보를 저장하고자 했다면, LSTM은 크게 2가지 구조를 통해서 RNN과의 차이점을 가짐 ① hidden state를 통해 short term memory (단기기억)를 조절하고 cell state를 통해 long term memory(장기 기억) 보존 ② forget, input, output, 3개의 gate를 통해 , 매 time step의 cell state와 hidden state, input에서 취할 정보의 양 결정 LSTM의 구조 LSTM의 구조는 총 4단계로 구분할 수 있음. Cell state를 도출하기 위해서, 1) forget gate와 2) input gate, new cell content..

[네이버부스트캠프 ai tech 6기] week1 회고

📚Learned (배운 것) 1️⃣ Numpy ndarray ndarray객체 : np.array([1,4,5,6]← 시퀀스형 자료형, float ← dtype지정) 하나의 데이터 type만 배열에 놓을 수 있음 shape : dimensin구성을 반환 위의 경우에는 (4,) dtype : float64, int32 등 reshape element의 개수는 같게, 허나 shape의 크기는 변경 test_matrix = [[1,2,3,4], [1,2,5,8]] np.array(test_matrix).shape #(2,4) np.array(test_matrix).reshape(8,) #array([1,2,3,4,1,2,5,8]) np.array(test_matrix).reshape(-1,2).shape #(..

RNN - 역전파와 한계점

RNN의 한계점 1) Vanishing / Exploding Gradients 가중치를 업데이트 시키는 Back Propagation Through TIme(BPTT)과정에서, time step이 하나씩 늘어날 때 마다, chain rule 연산도 늘어나게 된다. 아래 그림은 hidden state 벡터에서의 편미분 값을 보여주고 있다. 이때 편미분 횟수만큼 W_h가 곱해지고 있는 모습 !! ⇒ 이 과정에서 RNN의 문제점 발생 𝑊ℎ가 작을 수록(< 1) 반복적으로 곱해지는 값이 0에 가까워져 gradient vanishing gradient descent를 구하기 위해서 weight로 미분해주는 과정에서, chainrule을 사용해서, 미분값을 여러 개를 곱해주게 되는데, 이때, 만약에 입력 seque..

CNN - convolution 연산 이해하기

CNN은 이미지에 '커널 (Kernel)'이라는 필터를 이용하여 컨볼루션(convolution)을 취하는 방식으로, 필터를 이동시키면서 필터의 특성에 맞게 강조된 output(feature)를 뽑아낸다. CNN은 Neural Net과 유사하지만 이미지 데이터의 특성을 인코딩할 수 있다는 특징이 있다. 기존 DNN(Fully Connected Layer만으로 구성된 인공신경망)에서 입력 데이터는 1차원 배열 형태로 한정되기 때문에 이미지를 입력 데이터로 사용했을 때(2차원 -> 1차원 형태로 flatten 시키는 과정에서) 위치 정보가 손실된다. 반면 CNN에서는 Convolution layer를 사용하여 이미지 데이터의 형상을 유지하여 위치 정보의 손실을 줄일 수 있게 된다. 또한 Fully Connec..

07. Back Propagation - 역전파 이해하기

뉴럴 네트워크 모델을 설명하기 위한 파라미터들과, loss function, 경사하강법에 대해 이전에 알아보았다. (참고로, 뉴럴 네트워크는 우리가 알고 있는 아래의 관계망이고 이를 학습시킨 결과물이 바로 딥러닝 '모델'이다.) 이번에는 뉴럴 네트워크 모델, 즉 딥러닝의 학습과정(=파라마티 추정 방법) 에 대해 알아보고자 한다. Neural Network 잠깐 다시 짚고 넘어가자면, 인공 신경망은 입력층, 은닉층(여러 개일 수 있다), 출력층을 가지고 있다. 이 인공 신경망에서 입력 데이터(i1, i2)를 받아 최적의 출력 데이터(o1, o2)를 계산할 수 있도록, 각 퍼셉트론의 가중치(w1~w8)들을 업데이트하는 과정을 신경망 학습이라고 한다. Forward Propagation 순전파(Forward ..

[programmers] SQL 고득점 Kit - JOIN

이번에는 다섯번째 파트, join이다 # 5월 식품들의 총 매출 조회하기 FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요. SELECT P.PRODUCT_ID, P.PRODUCT_NAME, SUM(P.PRICE * O.AMOUNT) AS TOTAL_SALES FROM FOOD_PRODUCT AS P INNER JOIN FOOD_ORDER AS O ON P.PRODUCT_ID = O.PRODUCT_ID WHERE DATE_FORMAT(O.PRODUCE_DATE, '%Y-%m') = '2..

[programmers] SQL 고득점 Kit - NOT NULL

이번엔 not null 파트다. # NULL 처리하기 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요. SELECT ANIMAL_TYPE, IF(NAME IS NULL, 'No name', NAME) AS NAME , SEX_UPON_INTAKE FROM ANIMAL_INS SELECT ANIMAL_TYPE, case when NAME IS NULL then 'No name' else NAME end as NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID - if문으로 넣어..

[programmers] SQL 고득점 Kit - GROUP BY

이번에는 Group by 문이다. # 고양이와 개는 몇마리 있을까 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요. SELECT ANIMAL_TYPE, COUNT(*) AS count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE ASC - 이번에도 어김없이 개수를 구해줄 때면 count(*)를 쓴다. # 진료과별 총 예약횟수 출력하기 APPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고 결과는 진료과별 예약한 환자 수를 기준으로 오름..

카테고리 없음 2023.04.05