Deep Learning 22

[머신러닝 - Python] 손실 함수 - 배치 교차 엔트로피 오차 구현 (Loss Function - Batch Cross Entropy Error Implementation)

cross entropy error의 핵심은 정답에 해당하는 확률 값만 계산한다는 점입니다. 원-핫 인코딩 방식일 때의 코드를 보면 return -np.sum(target * np.log(pred + 1e-7)) / batch_size 라는 코드가 있는데, 이때 target을 log에 곱하는 모습을 볼 수 있습니다. 즉, 원-핫 인코딩 방식이므로 정답에 해당하는 인덱스만 1이고, 나머지 인덱스는 0입니다. 따라서 정답에 해당하는 인덱스를 k라고 한다면, pred[k]의 값만 log취해서 계산합니다. 1 * np.log(pred[k])가 되므로 k에 해당하는 에러율만 나타내고, 나머지 인덱스는 계산하지 않습니다. 마찬가지로 레이블 방식일 때를 보면, return -np.sum(np.log(pred[np.a..

[머신러닝 - 이론] Computer Vision의 연구 분야와 대표적인 모델 - Segmentation, SR, Generative, Translation (Computer Vision Research Fields and Representative Models - Segmentation, SR, Generative, Translation)

1. Image Sementic Segmentation 이미지에 의미가 있는 부분을 세분화하는 작업입니다. 중요한 특징 중 하나로는 output이 크기가 같은 image라는 것이 특징입니다. 2015년에 CVPR이라는 곳에 나온 모델을 보면, input과 output이 사이즈가 같은 이미지기 때문에 Dense Layer을 없앴습니다. 요즘은 영상이 output이면 Dense Layer을 없애고, Fully Conv Layer을 넣는 경우가 많다고 합니다. 의료분야에서 대표적인 Model은 U-Net입니다. 보시면 처음에 Conv Layer에서 나온 Feature Map을 두 개의 방향으로 보내는 것을 볼 수 있습니다. 아래 방향으로 가면서 중요한 정보들만 추출하고, 다시 upscailing하는 과정에서 ..

[머신러닝 - 이론] GAN (Generative Adversarial Network) (생성적 적대 신경망)

GAN은 2개의 신경망이 적대적인 관계에서 학습하는 생성 모델입니다. 앞의 글에서 소개했던 웹사이트 주소 역시 GAN을 이용해서 생성한 사람의 얼굴입니다. 1. GAN 1.1 GAN의 원리 생성망 G와 분별망 D라는 두 개의 대립 관계의 신경망을 사용합니다. 이때 G는 D를 속일 수 있을 정도로 품질이 높은 가짜 샘플을 생성해야 하고, D는 G가 만든 가짜 샘플을 높은 정확률로 맞춰야 합니다. 이때 생성망과 분별망을 나눠서 설명하자면, 생성망의 가짜 샘플 생성 분별망이 속지 않음 - 생성망의 생성 방식을 바꿈 분별망이 속음 - 생성망은 그 방향으로 학습함 분별망의 가짜 샘플 분별 분별에 실패함 - 분별망의 분별 방식을 바꿈 분별에 성공함 - 학습을 강화함 이러한 상호작용을 통해 G와 D 둘 다 뛰어나지는..

[머신러닝 - 이론] Generative Model (생성 모델)

인간의 생성 능력을 예시로 들어보자면, 처음 가본 곳의 풍경을 그림으로 그립니다. 하지만 이 그림은 비슷하게 모방할 뿐, 정확히 같지는 않습니다. 의도적인 왜곡, 도구의 한계로 추상화하는 한계가 있습니다. 이를 인공지능에 적용하면 두 가지 모델이 나옵니다. 바로 분별 모델과 생성 모델입니다. 분별 모델은 얼굴, 표정을 보고 상대의 감정을 알아보는 등 이러한 능력을 말합니다. 인공지능은 분별 능력을 중심으로 발전해서, 앞에서 공부한 SVM, MLP, CNN, LSTM, RL 등 모두 분별 모델에 해당합니다. 생성 모델은 사람의 필체를 흉내 내는 인공지능 등이 대표적입니다. 딥러닝 기반 생성 모델인 GAN이 현재는 대표적인 생성 모델입니다. https://thispersondoesnotexist.com/ T..

[머신러닝 - 이론] RNN과 LSTM

1. 시계열 데이터 시계열 데이터란 시간, 순서 정보가 들어 있는 데이터를 말합니다. 문장이 있다면 단어가 나타나는 순서가 중요합니다. 또한 일별 온도를 기록한 데이터가 있다면 날짜의 순서가 중요합니다. 이처럼 데이터에 순서나 시간이 들어가 있는 데이터를 시계열 데이터(time series data)라고 합니다. 시계열 데이터의 독특한 특성에 대해 알아보겠습니다. 요소의 순서가 중요 "세상에는 시계열 데이터가 참 많다"를 "시계열 참 데이터가 많다 세상에는"으로 바꾸면 의미가 훼손됩니다. 샘플의 길이가 다름 짧은 발음 "인공지능"과 긴 발음 "인 ~공~~~지능"이 다름 문맥 의존성 "시계열은 앞에서 말한 바와 ... 특성이 있다"에서 "시계열은"과 "특성이 있다"는 밀접한 관련성이 있음 계절성 미세먼지 ..

[머신러닝 - 이론] CNN 시각화, CNN 성능 향상, 전이 학습 (CNN Visualization, CNN Improve Performanc

1. CNN의 시각화 CNN에서는 두 가지의 시각화를 시도할 수 있습니다. 첫 번째는 Convolution Layer의 Kernel을 시각화하는 방법이고, 두 번째는 Conv Layer, Pooling Layer이 추출해주는 Feature Map을 시각화하는 방법입니다. 왜 시각화를 해야할까요? CNN의 성능은 뛰어나지만 왜 그런 의사결정을 했는지 설명하는 능력이 매우 떨어집니다. 방대한 수치 계산으로 의사결정이 이루어져서 의사결정에 대한 이유를 해석할 방법이 없기 때문입니다. 설명 가능을 달성하려는 많은 연구 결과가 있는데, 커널과 특징 맵의 시각화는 가장 낮은 수준의 방법입니다. 낮은 수준이지만 쉽게 적용이 가능하고, 많은 정보를 주기 때문에 애용하는 방법입니다. 코드와 실제 예시는 나중에 글로 쓰겠..

[머신러닝 - 이론] 합성곱 신경망과 컴퓨터 비전 (CNN : Convolution Neural Network, Conputer Vision)

1. CNN의 시작 컴퓨터 비전은 인공지능의 가장 중요한 연구 분야 중 하나입니다. 시각은 인간의 가장 강력한 인지 기능이고, 컴퓨터 비전은 인간의 시각 기능을 모방합니다. 그렇다면 인간의 시각 기능이 어떻게 작동하는지를 먼저 알아야 합니다. 여러분들은 지금 이 글에 집중하고 계실 겁니다. 그러면 옆에 있는 침대, 책상, 책들도 보이실 텐데 흐릿하죠. 결국 시각은 집중하고 있는 field에만 명확히 인식할 수 있습니다. 실제로 시각 피질 안에 많은 뉴런들이 있는데, 어떤 뉴런은 수평선의 이미지에만, 어떤 뉴런은 수직선의 이미지, 또 다른 애는 다른 각도의 선분에만 반응합니다. 또 어떤 뉴런은 큰 수용장을 가져서 더 복잡한 패턴에 반응합니다. 즉 결론적으로 뉴런들은 각기 집중하는 field가 있고, 이 f..

[머신러닝 - 이론] 지금까지의 내용 정리

지금까지 내용을 간략히 정리하고 가겠습니다. 인공지능 : 인간의 지능이 가지는 학습, 추리, 논증 따위의 기능을 갖춘 시스템 인공지능은 강한 인공지능과 약한 인공지능으로 나뉜다 인공지능의 접근 방법 과학적 : 인간의 지능을 충분히 연구한다음 그 원리를 충실히 모방하는 기계 제작 공학적 : 쓸만한 지능 기계를 만들 수 있다면 인간의 지능 원리를 따르지 않아도 됨 규칙 기반 방법론 : 사람이 사용하는 규칙을 수집하여 프로그래밍(if-else) 하지만 규칙을 위반하는 샘플이 발생함 기계 학습 방법론 : 충분한 데이터를 수집 -> 기계가 스스로 규칙을 찾아내 학습하는 방법 딥러닝 방법론 : 기계 학습은 특징까지 수작업으로 알아내야하지만, 딥러닝은 특징마저 스스로 알아냄 머신러닝의 데이터의 중요성 데이터가 없으면..

[머신러닝 - 이론] 딥러닝의 학습 전략 (Learning Strategy of Deep Learning)

앞선 글에서는 딥러닝이 무엇인지, 손실 함수는 어떻게 정의되고, 가중치 갱신 규칙에 대해 간략하게 알아봤습니다. 딥러닝의 학습 알고리즘은 수학적으로 아주 깔끔합니다. 하지만 층이 깊어질수록 딥러닝의 학습 중 발생하는 현실적인 문제를 말하고, 해결 전략에 대해 설명해드리겠습니다. 그리고 뒤에서는 몇몇 중요한 손실 함수와 옵티마이저 함수의 종류에 대해서 설명하겠습니다. 마지막으로 하이퍼 파라미터의 최적화 방법에 대해 알려드리겠습니다. 대표적인 두가지 문제는 그레이디언트 소멸 문제(Vanishing Gradient Problem), 과잉 적합 문제(Over Fitting Problem)입니다. 1. 그레이디언트 소멸 문제 (Vanishing Gradient Problem) 가중치를 갱신하는 과정은 미분의 연쇄..

[머신러닝 - 이론] 딥러닝의 기본 (Fundamental of Deep Learning)

1. 딥러닝이란? 깊은 신경망은 신경망에 층을 많이 두어 성능을 높이는 기술입니다. MLP에 은닉층을 더 많이 두면 깊은 신경망이 됩니다. 구조적으로는 쉬운 개념입니다. 하지만 학습이 잘 안 되는 경향이 있습니다. 층이 깊어질수록 오류 역전파 알고리즘의 미분 값이 출력 층에서 입력 층으로 갈수록 소멸되기 때문입니다. 이를 그레디언트 소멸 문제라고 합니다. 즉 층이 깊어질수록 학습이 잘 안 됩니다. 또한 데이터 셋이 작으면 추정할 매개변수는 많아지는데 데이터는 적어 over fitting이 일어나게 됩니다. 추가적으로 계산 시간이 매우 크다는 점이 단점입니다. 이때 딥러닝은 새로 창안된 이론이나 원리는 깊은 신경망과 동일합니다. 값싼 GPU의 등장, 데이터 셋의 크기 증가, 학습 알고리즘의 발전 (ReLU..