[Deep Learning - CV] AutoEncoder ( AE )

2022. 5. 16. 22:45AI/Codestates

728x90
반응형

→AutoEncoder 란?

▶ Latent ( 잠재 ) 벡터

원본 데이터보다 차원이 작으면서도, 원본 데이터의 특징을 잘 보존하고 있는 벡터

▶ AutoEncoder의 쓰임새

→ 차원축소 ( Dimensionality Reduction )

→ 데이터 압축

→ 데이터 노이즈 제거 ( Denoising )

→ 이상치 탐지 ( Anomaly Detection )

AutoEncoder 코드 구현

def create_AE():
    input_img = Input(shape=(32, 32, 1))

    channels = 2
    x = input_img
    for i in range(4):
        channels *= 2
        # 사용할 함수 : Conv2D(activation='relu', padding='same'), Concatenate(), MaxPooling2D(padding='same')
        x1 = Conv2D(channels, (3,3), padding = 'same', activation = 'relu')(x) 
        x2 = Conv2D(channels, (2,2), padding = 'same', activation = 'relu')(x)
        x = Concatenate()([x1, x2])
        x = MaxPooling2D(padding='same')(x)


    x = Dense(channels)(x)

    for i in range(4):
        # 사용할 함수 : Conv2D(activation='relu', padding='same'), UpSampling2D(padding='same')
        x = Conv2D(channels, (3,3), padding = 'same', activation = 'relu')(x) 
        x = UpSampling2D()(x)
        channels //= 2
    decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)

    autoencoder = Model(input_img, decoded)
    autoencoder.compile(o
728x90
반응형