GAN 첫걸음
파이토치 신경망 입문부터 연예인 얼굴 생성까지!
#GAN #파이토치 #인공지능 #신경망
#한빛미디어 #인공지능개발 #인공지능공부 #인공지능강의
#데이터분석 #데이터과학 #데이터분석강의 #머신러닝 #딥러닝
들어가기에 앞서 이 서적을 보기 전, 신경망 첫걸음이라는 서적을
먼저 보고 학습하시면 더 많은 이해와 도움이 될 것이라 생각합니다.
DAY 1, 2, 3
1챕터는 크게 어렵지 않습니다, 주피터 노트북이나 구글 코랩을 이용하여 작업하는 내용이 대부분이고 모듈 사용, 파이토치 텐서, 계산법 등 처음 접하시더라도 재미있는 내용이 주를 이루고 있습니다 ^^
파이토치는 파이썬 기반의 머신러닝 프레임워크입니다. 넘파이와 마찬가지로 숫자로 이루어진 행렬을 다룰 수 있게 도와줍니다. 또한 머신러닝을 쉽게 해줄 다양하고 편리한 도구와 함수를 제공하기 때문에 해당 서적에서는 파이토치 모듈을 이용해 소개하고 있습니다.
파이토치의 주요 기능 중 하나인 기울기를 위한 자동 계산에 대해서도 나오니, 꼭 어렵더라도 실습해보시고 넘어가세요 ^^
2챕터부터 재미있는 친구들이 나오기 시작합니다.
데이터를 얻고 살펴보고 간단한 신경망부터 훈련 시각화하는 방법까지 좋은 내용을 담고 있습니다.
분류기를 훈련시키고 신경망에 쿼리 하는 내용까지 정말 주옥같은 내용이 담겨있고 필수적인 내용이 담겨있는 챕터라고 생각됩니다.
3챕터에는 훈련이 어떻게 진행되는지 손실 값을 시각화하는 것부터 정규화까지 내용을 다루고 있습니다.
많이 어려울 수 있는 챕터라고 생각합니다.
더 나은 성능을 구축하기 위해 여러 개념이 등장하는데, 처음 하시는 분들은 상당히 까다로울 수 있으니 정독하시길 권장해드립니다.
DAY 4, 5, 6
중요하지 않은 챕터가 없지만 4챕터는 엔디비아 CUDA에 대하여 다루고 있습니다. 정말 필수적입니다.
단일 연산에서는 CPU 처리 속도가 높을 수 있지만, 방대한 양의 데이터를 다루려면 GPU는 필수이기 때문입니다.
CPU는 굉장히 많은 연산 코어를 통해 특정한 작업을 굉장히 빠르게 합니다.
우리가 알고 있는 그래픽 관련 연산이 빠르다고 생각하지만 머신러닝 분야 관련 계산을 하는 데에도 굉장히 빠른 성능을 자랑합니다.
조금 힘들고 지루한 3, 4챕터(?)를 지나고 5, 6챕터부터 GAN이 등장합니다.
GAN의 개념과 훈련과정과 생성기, 판별기를 각각 따로 시각화하는 것 등 저도 처음 접하는 내용이 나옵니다.
굉장히 재미있게 읽었던 챕터입니다.
GAN을 훈련하는 좋은 방법은 단계에 맞춰 훈련하는 것으로 실제 데이터를 미리 살펴보고 판별기가 적어도 실제 데이터와 임의의 노이즈를 구별하도록 학습할 수 있을 성능은 지니는지 확인 후 훈련되지 않은 생성기가 올바른 형태의 데이터를 만들어내는지 확인합니다.
그리고 손실이 어떻게 변하는지 시각화 과정을 거칩니다.
이렇게 앞 장에서 GAN의 많은 기능을 코드로 구현하고 실제로 사용해보면 7챕터에서는 실제 손으로 쓴 숫자 훈련에 대하여 다룹니다.
데이터 셋을 사용하고 판별하며 테스트하는 과정을 실제 코드로 구현해봅니다, 또한 생성기 결과를 확인하고 GAN 훈련을 거쳐 성능을 향상시키고 시드로 실험까지 해봅니다. 굉장히 많은 작업을 거치고 중요한 이론이 많이 나오지만, 막상 리뷰에 다 적을 수는 없어 안타깝습니다.
그만큼 매우 좋은 서적이라는 생각이 드네요! 꼭 구매해서 보세요.
DAY 7, 8, 9
8챕터는 7챕터와 같이 파트 2 부분이라 7챕터 후 이어서 바로 진행하시는 것을 추천해 드립니다.
9, 10챕터에서는 합성곱 GAN, 조건부 GAN이라는 개념에 대하여 등장합니다.
합성 곱은 특성 맵을 산출하기 위해 이미지에 커널을 적용하는 것입니다. 특정 커널은 이미지에서 지역화된 특성을 찾아낼 수 있다고 합니다. 신경망의 합성곱 레이어는 주어진 작업에 대해 좋은 커널을 학습할 수 있습니다. 즉, 신경망에서 어떤 이미지 특성이 제일 쓸모 있는지 일일이 알려주지 않아도 된다는 뜻입니다. 합성 곱을 이용하는 신경망은 완전 연결 신경망보다 더 나은 성능을 보입니다.
합성곱 신경망에 기초를 둔 GAN은 이미지를 저, 중, 고의 계층구조로 만듭니다. 완전 연결 신경망을 기초로 하는 GAN보다 더 나은 성능을 보인다고 알려졌습니다.
조건부 GAN은 일반적인 GAN과 달리, 원하는 클래스의 데이터 생성이 가능합니다.
훈련 시 판별기에 이미지를 보강해서 전달하며, 생성기에는 클래스 레이블을 통해 시드가 투입되어야 합니다.
조건부 GAN은 레이블 정보를 받지 않은 일반적인 GAN보다 좋은 이미지 품질의 데이터를 생산합니다.
DAY 10
머신러닝은 정말 멋집니다!
후기 : 윤리적으로 학습하는 습관을 기릅시다.
GAN으로는 사실과 가까운 인공 데이터를 만들 수 있습니다. 이를 오용하면 그 파급효과가 상당히 클 수 있습니다. 몇몇 단체는 안전하고, 윤리적이며, 책임감 있게 머신러닝이 사용될 수 있게 프레임워크와 가이드라인을 만들고 있습니다.
추후에 여러분의 학습 결과가 사람들에게 영향을 미칠 수 있다고 생각한다면 이 점에 대해서도 한번 생각해 보기 바랍니다.
- GAN 첫걸음 中 -
머신러닝, 딥러닝은 정말 재미있는 분야입니다.
저도 데이터 분석부터 천천히 공부하여 지금은 인공지능 분야까지 공부를 시도하고 있고
산출물과 어플리케이션, 웹 사이트를 구축해보거나 해당 데이터를 판별하는 시스템을 많이
작품화하려고 노력하였습니다.
쉽지 않았고 지금도 쉽지 않지만, 정말 재미있고 무한대로 응용이 가능한 분야임에는 확실한 것 같습니다.
아직 하수지만, 인공지능이 산출물과 작품, 결과물과 연구성으로 평가받는 분야이다 보니
개발해서 실제 작품으로 출시했을 때를 기억하며, 최대한 많이 공부해서 작품으로 응용해보려고 노력하고 있습니다.
더 나은 인류와 미래사회를 위해
파이팅입니다.
리뷰를 마치며!