ABOUT ME

-

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

     

    자, 3월달이다...화이팅하자

     

    CH08-02. Auto Encoder - VAE

    &

    CH08-03. Auto Encoder - 오토인코더의 활용

     

     

    CH08-02. Auto Encoder - VAE

    우리가 오토인코더를 설명할 때, 생성모델이다, Generative 모델이다 라고 하는 이야기를 많이 한다.

     

    데이터를 만든다라는 것은 어떤 의미인가?

    "학습 데이터의 전체적인 분포를 파악해서 분포에 근사한 데이터를 만들어내는 작업이 데이터 공장에서

      데이터를 만든다." 라고 정의할 수 있다. ㄷ

     

     

     

    위의 이미지에 따라 이미지를 생성하는 방법에는 크게 2가지가 있는데,

     

    Explicit density 와 implicit density이다.

     

    앞서 설명한것은 explicit density를 기반으로 한 데이터 생성 방법이다. 즉, 우리가 학습할 데이터를 가지고

    확률분포를 명확하게 분포를 구한 다음에 그 분포를 기반으로 새로운 데이터를 만들어내는 것이다.

    ▶ 학습 분포의 라이클리후드를 높이는 방향으로 학습을 진행하게 된다.

     

     

    VAE(Variation Autoencoder)

    익스플리트한 제너레이트 모델 중 하나로서 대규모 데이터 세트로 확장할 수 있고, 다루기 힘든 조건에서도 동작하는

     확률적 변형 추론 모델을 제안한다.

     

    즉 다양한, 데이터 세트를 사용해서 새로운 데이터를 생성할 수 있는 모델을 제안한다.!

     

     

    VAE를 사용하여 데이터를 생성하는 방법

    VAE를 이해하기 전에 데이터를 어떻게 만드는지 다시 생각해보면

    데이터를 만들기 위해 재료가 필요하고, 각각의 확률분포를 통해 우리가 원하는 값들을 채우는 작업이

    데이터를 생성하는 것이라고 하였다. 

     

     

    이걸 신경망 형태로 구현하게 되면, latent vector(잠재공간)을 통해 원하는 아웃풋을 뽑아내는 것이다.

     

    그래서 우리가 아웃풋 되는 벡터를 x, 레이턴트 벡터를 구성하는 벡터를 z라고 표현해보자.

     

    P세타z는 레이턴트 벡터 z가 가질수 있는 확률 밀도 함수를 말하고,

    세타는 모델의 파라미터.

     

    출력층에서 가질 수 있는 확률분포는 P세타(x/z) 형태로 표현할 수 있다.

    z가 주어졌을 때 x가 나올 확률을 의미한다.

     

    모델의 파라미터가 주어졌을 때 내가 원하는 결과값 x가 나올 확율인 피쎄타 엑스가 높을수록 좋은 모델이다.

    라고 할 수 있다.

     

    내가 원하는 값은 마지막줄에 피쎼타지가 피쎼타엑스바쥐 곱한 인테그랄이 피세타엑스이다.

    (내가 뭔말하는지도 모르겠다.)

     

    하지만 여기서 한계가 존재하는데 ,모든 z에 대해서 px 바 쥐 값을 구할수가 없기 때문에

    위에 말한 적분식을 그대로 사용할 수가 없다!!!

     

    레이턴트 벡터 z를 사용해서 새로운 벡터 x를 갖고 싶다.

     

     

    Z가 정규분포를 따른다고 했을 때, 앞에 X를 입력으로 받아서 레이턴트 Z 정규분포를 구성하는 

     

    평균값(뮤), 표준편차(시그마) 를 추출할 수 있는 방을 만든다!!

     

    전체적인 그림을 다시 살펴보자면,

    1. 입력 엑스가 들어가고, 출력도 엑스가 나오는 형태

     

    2. 중간에 레이턴트벡터 라는 잠재벡터를 구한다.

     

    3. 오토인코더와 유사한 형태를 띄게 된다.

     

    4. 목적자체는 오토인코더는 레이턴트 벡터를 얻기 위함이었지만,

     

    5.  이 VAE 는 이 레이턴트 벡터를 만들기 위한 구조에서 시그마와 뮤값을 얻는게 목적이다 보니,

         이름이 베리에이션 오토 인코더라고 된 것이다.

     

    6. VAE도 마찬가지로 인코더부, 디코더부가 있고

        인코더부분은 x의 입력을 레이턴스 벡터(잠재공간)으로 변환해주는 역할을 해주고,

        즉, 이 잠재공간은 정규분포를 따른다고 했으니까, 정규분포의 핵심인 뮤와 시그마 값을 구하는 것이

        그 목적이라고 할 수 있다.

     

    7. 디코더는 잠재공간에 있는 값을 입력과 유사한 형태 즉 x로 변환하는 역할을 수행하게 되고,

        디코더는 제너레이터 역할을 수행하게 된다.

     

     

    1. x라는 입력이 들어가고 이 인코더를 통해 뮤와 시그마 값을 얻게 된다.

     

    2. 뮤와 시그마를 통해 Z를 도출할 수 있다.

     

    3. Z를 입력으로 하는 디코더를 사용해서 X와 유사한 형태를 갖는 X'을 얻게 된다.

     

    4. Z에 대해 다시한번 생각해보면, 뮤와 시그마로 이루어진 이 레이턴트 스페이스에서

     

    5. 어떤 X값에 대해서 항상 동일하게 뮤와 시그마 값이 존재한다면 뮤와 시그마를 통해 얻어진 X'형태는 항상 동일하게 될 것이다.

     

    6. 그러나 우리는 항상 다른 형태, X와 유사하긴 하지만 새로운 데이터를 원하는게 제너레이터의 목표이기 떄문에

        항상 유사한 데이터가 만들어지지 않게 하기 위해 입실론이라는 텀을 추가하게 된다.

     

    7. 입실론이란, 노이즈를 샘플링 할 수 있는, 레이턴트 벡터에 새로 작업이 추가된다고 이해하면 된다.

     

     

    CH08-03. 오토인코더의 활용

    앞에서 오토인코더를 신나게 배웠는데 이 오토인코더를 어떻게 쓸 수 있는가?

     

    화질 개선!!

    "저해상도 영상을 고해상도 영상으로 변환하는 작업(이미지 슈퍼 Resolution)." 

    우리가 사실 저해상도 이미지와 고해상도의 이미지를 구할 수 있으면 좋겠지만 두 페어를 수집하는게 쉽지 않다.

     

    따라서 원본 이미지를 일부러 저해상도로 변환시킨 다음에, 

     

    1. 저해상도 이미지를 입력으로 사용하고,

    2. 이 데이터를 사용해서 원본이미지로 복원할 수 있는 형태로 학습을 수행하다 보면

    3. 실제로 저해상도 이미지가 들어갔을 때 고해상도 이미지를 내뱉을 수 있는 신경망을 만든다.

     

    오토인코더를 사용하여 이미지 개선을 하다 보면, 해당 이미지의 레졸루션이 좋게 출력되는 것을 알 수 있다.

     

    Image Denosing

    이미지 디노이징 분야에도 적용할 수 있다.

    해상도가 아니라 필터를 적용한 것과 같지 원본 이미지에 노이즈가 있을 때 그 값을 없애는 활동을 디노이징이라고 할 수 있다.

     

    이미지 디노이징 작업을 할 떄 원본데이터 작업에 일부러 노이즈를 더해서 노이즈가 들어있는 입력 데이터를

    인토더의 입력으로 활용하는 것이다.

     

    그래서 오토 인코더를 통해 학습을 수행하면 중간에 잠재적인 레이턴트 벡터가 구해지게 되고, 레이턴트 벡터를 사용해

    디코딩을 하면 원본 이미지와 유사한 데이터가 구해지는걸 알 수 있지.

     

    Anomaly Detection

    비정상적인 상황을 탐지하는 활동을 의미한다.

    엑스레이 데이터가 입력으로 들어왔다. 데이터를 사용해 오토인코더를 통과 시켰더니, 원본 데이터는 유사하지만

    다른 형태의 데이터가 복원시킨다.

     

    여기서 이상감지를 위해 입력된 데이터와 복원된 데이터의 차이를 구하게 된다.

    이 차이값이 일정한 임계치를 넘어서는 경우에 이상현상이 발생했다! 라고 찾아내는게 어노멀리 디텍션이다.

     

    VAE를 사용하여 적용하면 입력된 데이터를 가지고 VAE를 통과시켜서 복원된 데이터를 생성하고,

    여기서 디스크리미네이터(정상인지 아닌지) 판단을 하는 모델을 학습시키는 것이다.

     

    이러한 오토인코더는 반드시 이미지 데이터에만 적용되는 건 아니고, 타임 시리즈 데이터에 대해 비정상적인 상황을

    탐지하는 오토인코더도 있다.

     

     

     

    30일차 끝.

     

     

     

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

    https://bit.ly/48sS29N

Designed by Tistory.