ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 패스트캠퍼스 환급챌린지 29일차 미션 (2월 29일) : 딥러닝·인공지능 Signature 초격차 패키지 Online. 강의 후기
    패스트캠퍼스 챌린지 2024. 2. 29. 19:56

     

    자, 오늘은 

     

    Part3. 인공지능의 의해 Lv.2 : 숲을 보는 인공지능

    CH07-10. NLP - Transformer 그 이후

    &

    CH08-01. Auto Encoder - 오토인코더의 개념 및 주요 구성

     

     

     

    CH07-10. NLP - Transformer 그 이후

    NLP의 마지막 시간, 트랜스포머와 그 이후에 나온 모델에 대해 알아보고자 한다.

     

    Transformer란?

    "Attention에서, 즉 동적으로 할당하는 것은 의미가 있지만 기본적으로 인코더/디코더 내부에 RNN을 활용하고 있는데,

      Long-term dependency, Gradeint Vanising 과 같은 문제점이 있기 떄문에 개선된 방향을 제안한다"

     

    이 트랜스포머는 위의 문제점들을 어떻게 개선했는지 알아보자.

     

    Transfomer의 특징

    Encoder and Decoder stacks

    - Seq2Seq 이후에 나온 모델은 이후에 인코더와 디코더로 나뉘어지는데, 트랜스포머 또한 인코더와 디코더로 나뉘어진다.

     

     

    이 트랜스포머의 인코더와 디코더는각각 6개씩 사용하고 있다.

    여기서 인코더는 2가지 파트로 구성되어있는데,

    1. Multi-Head Attention

    2. Feed Forward

    각 파트에 레지듀얼 커넥션을 사용하고 있고, 

    (레지쥬얼 구조는 CNN에서 ResNet 살펴볼떄 봤던 구조인데, 입력의 시퀀스를 나중에 출력해서 다시 한번 참조할수 있는

     스킵 커넥션 구조를 사용한다.) 

    모든 파트의 Output dimension은 512다.

     

    디코더는 마찬가지로 6개의 독립적인 구조를 가지고 있고 3파트로 구성된다.

     

    1. Masked Multi-Head Position

    2. Multi-haed self attention

    3. feed forward 

    각, 파트에 레지쥬얼 커넥션을 사용하고 있고, 마찬가지로 아웃풋은 512로 하고있다.

     

    그렇다면 이 트랜스포머에서 구조에서 사용된 멀티헤드 어텐션이 뭔지 알아보자!

     

    해당 논문에서는

     

    1. Scaled dot product attention

    2. Multi-head attention

     

    이렇게 2가지를 사용했다고 말하고 있다.

     

    1. Scaled dot product attention

    앞서 배운 어텐션 스코어 에서는 인자를 2개 받는다고 하였는데, 

     - Attention score(q, k) = q . k

       하나는 디코더 셀의 은닉상태, 또 하나는 인코더 셀의 은닉상태다.

       

     - scaled dot product attention

       여기서는 스케일드, 루트 엔이라는 값으로 나누어서 스케일드 적용된 닷프로덕트를 사용한다는 것이 차이다.

     

    이미지상의 q k v 에서 쿼리, 키, 밸류라고 표현하고 큐는 디코더 셀에서 은닉상태,

    k는 인코더 셀에서의 은닉상태, 그리고 v는 인코더 셀에서의 은닉상태다.

     

    2. Multi-head attention

    어텐션을 병렬적으로 수행했다 라는 뜻이다.

     

    같은 문장임에도 어텐션을 여러번 표현하면 형광펜을 칠하는 부분이 다양하게 나타나더라! 하는 것이다.

     

    3. Transformer 는 내부의 어텐션을 통해 자기자신의 시퀀스를 학습한다.

    앞선 구조에서 볼 때 인코더 박스와 디코더 박스에 멀티 헤드 어텐션이 있는걸 알 수 있는데,

    얘들은 내부적으로 자기 자신을 학습한다.

    즉 단어가 들어올 때 집중을 해야하는 단어들이 각각 달라질 것인데 이걸 가중치를 여기서 먼저 주는 것 같다.

    (여러개의 관점)

     

    ▶ 어텐션마다 형광펜을 각각 쳐주는 것이 다르다 보니 헤드를 여러개 도출해줘야 해서 집중해서 봐야할

        것을 다양하게 찾아준다고 한다.

     

    4. Masked

    트랜스포머는 RNN 구조를 벗어내고 입력 임베드, 아웃 임베드를 한꺼번에 들어가는 형태로 구조되어있다.

    현재 시점의 단어를 예측하고자 할때 미래 시점의 단어는 참조하지 않도록 마스킹, 가려버린다.

    (미리보기 방지용)

     

    RNN은 앞에서 들어왔던 문맥의 정보를 계속해서 기억하기 위해 사용하였는데, 

    이 RNN을 제거하면 단어의 위치 정보를 전달할 수 있는 방법이 필요하다.
    (RNN의 근본적인 문제를 해결한것이다.)

     

    Positional Encoding 

     

     

     

    CH08-01. Auto Encoder - 오토인코더의 개념 및 주요 구성

    오토인코더는 인공신경망이라는 종류중 하나라고 함.

     

    비지도학습 기반 방법이고, Efficient coding 방법을 배운다 함.

     

    입력층과 출력층 사이에 은닉층(code) 입력층과 출력층의 크기가 같다.

     

    code를 중심으로 인코더 디코더가 있는데, 인풋부터 아웃풋까지 전체를 신경망으로 볼 수있지만

    인코더, 디코더 부분을 나누어 2개의 신경망이라고도 볼 수 있다.

     

    이 오토 인코더는

    학습을 통해 얻고자 하는 결과가 아웃풋을 통한 결과가 아니라, 중간의 코드를 구함이 목적이다. 

    코드값이 무엇인지 모르기 때문에 지도학습이 불가하다.

     

    이 코드값을 구하기 위해 부가적으로 아웃풋을 사용하는 것이다.(특이한 신경망)

     

    이 코드가 도대체 무엇인가?

    인코딩한 결과값, 인코딩의 결과로 얻게 되는 결과를 코드라고 한다!(코드화, 암호화...)

     

    암호화한다? 암호는 원본 데이터는 있고 누구나 이해할 수 있는 혹은 특정 프로그래머만 해석할 수 있는 것을 암호화한다라고 하는데, 이 암호화된 코드를 복원해서 원본을 뽑을 수도 있겟지

     

    원본값의 속성값을 잘 보존할 수 있는 압축된 형태의 데이터 라는 것을 여기서 의미하는 코드라고 할 수 있겠다.

     

    코드는 원본데이터가 압축이 되어있는 형태다라고 했는데, 이 오토인코더 말고 차원축소는 뭐가 있을까?

     

    PCA(Principal component Analysis)

    주요 성분을 분석한다.

    상관관계 기반으로 자료의 변동을 최대한 보존하는 고유값과 고유벡터를 이용하여 저차원 자료로 변환하는 기법

    (일부 정보의 손실은 발생하나 원본의 데이터는 그대로 보존된다.)

     

    신경망에서 차원을 축소하여 원본 데이터 값을 벡터로 잘 표현할 수 있을까?

    input data X가 있고 Z를 추출하는데, z가 X보다 더 적은 차원이라, 다운 샘플링이 필요하다.

     

    이 Z값을 구하기 위해 수학연산을 만드는게 아니라 신경망을 통해 자동으로 내부에서 학습이 되길 원한다.

    지도학습 기반의 신경망을 만들어야하는데, 이 x를 잘 표현하는 z를 도출하고자 뒷부분에 추가적인 레이어를 

    추가하는 것이다.

     

    x를 잘 압축하는 z를 구하고 싶은데, 이 z를 직접적으로 학습할 수 없으니 이 z를 통해서 x와 유사한 형태의

    값을 복원할 수 있는 신경망(뒤쪽)을 설계하는 것이다.

     

    그래서 입력과 출력이 동일한 차원의 데이터로 설정이 되게 되는 것이다.

    엑스와 엑스 햇의 오차가 줄어들게 하는 z를 구하자.

     

     

     

     

     

     

     

     

    29일차 끝.

     

     

     

    본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

    https://bit.ly/48sS29N

Designed by Tistory.