인공지능/머신러닝 58

[머신러닝 - Python] 기울기 구현 (Gradient Implementation)

함수 f를 받아서 중앙 차분을 이용하여 수치 미분하는 코드 정확한 미분 값을 구하지는 못하므로 수치 미분이라고 함 아무튼 해당 함수와 특정 좌표를 받아서 h라는 미세한 값을 더하고(A), 뺀 뒤(B), A와 B의 차이를 계산하여 기울기를 구하는 방식 좌표가 n개가 되면 각각의 n의 f 위에서의 기울기를 구한 뒤 반환함 만약 좌표가 2차원이라면 1개의 차원씩 잘라서 계산 후, 반환함 즉, f 함수에서 각각의 좌표에 해당하는 지점에서의 기울기를 구한다. import numpy as np def numerical_gradient(f, x): # 함수 f를 x 좌표에서의 편미분 값을 반환하는 함수 h = 1e-4 grad = np.zeros_like(x) for idx in range(x.size): tmp_v..

[머신러닝 - 이론] 경사 하강법 (Gradient Descent)

1. 경사 하강법의 정의 경사 하강법(傾斜下降法, Gradient descent)은 1차 근삿값 발견용 최적화 알고리즘이다. 기본 개념은 함수의 기울기(경사)를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를 때까지 반복시키는 것이다. -위키 백과- 만약 본인이 한 치 앞도 보이지 않는 상황에서 산을 내려가야 하거나, 올라가야 한다면 어떻게 해야할까요? 시각적으로 멀리 있는 산 꼭대기가 보이지 않기 때문에 단순히 근처의 지형을 가지고 판단을 내려야 합니다. 그러므로 현재 위치에서 가장 경사가 높은 곳, 그 곳으로 계속해서 움직이면 '보통'의 경우 산의 정상에 도달 할 수 있습니다. 이는 경사 상승법이라고 하며, 정 반대의 방법으로 계속해서 가장 낮은 곳으로 이동하는 것이 경사 하강법이라고 할 수 ..

[머신러닝 - 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하는 과정에서 ..

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

1. Classification 말 그대로 해당 Image Object가 어떤 물체인지 분류하는 작업입니다. 대표적인 모델로는 EfficientNet이 있습니다. EfficientNet의 점수이며, 상대적으로 파라미터가 적음에도 불구하고 높은 정확도를 보이고 있습니다. EfficientNet의 구조는 다음과 같습니다. a를 보면 기본적인 모델의 구조입니다. 이때 EfficientNet은 다양한 테스트를 해봤는데, 기본적으로 채널 수를 더욱 늘려도 보았고, 깊이도 더 깊이 해봤고, 해상도도 변경했었습니다. 마지막으로 모두 혼합해서 테스트도 했습니다. 다양한 테스트 이후 좋은 구조를 합친 것이 바로 EfficientNet입니다. 가장 중요한 것은 결과가 아니라 과정에서 이 사람들이 왜 이런 생각을 했을까? ..

[머신러닝 - 이론] Computer Vision

1. Computer Vision이란? AI의 한 분야이고, 이미지, 비디오 혹은 visual input에서 의미 있는 정보를 추출하는 분야입니다. 또한 해당 정보에 기반해서 행동을 취하거나 추천을 하는 등의 분야입니다. 이 분야의 목적은 NLP와 비슷하게 컴퓨터에게 이미지를 이해시키는 것이 목적이며, 정보와 insight를 정확하게 추출하는 것이 목적입니다. 이때 이미지는 NLP와 다르게 매우 다양하며, VR, 적외선 레이더 등 매우 많은 이미지가 있습니다. 이때 이미지에서 현재 상황을 보거나, 어디에 무엇이 있는지, 어떤 행동이 일어나고 있는지, 어떤 행동을 예상하는지, 어떤 일이 발생할지에 대해 discover합니다. Computer Vision이 영향을 끼칠 수 있는 분야는 매우 많습니다. 기본적..

[머신러닝 - 이론] NLP + Computer Vision

1. Common NLP Tasks (Mixed tasks (NLP + Computer Vision)) 일반적인 자연어 처리와 컴퓨터 비전을 합한 작업으로는 Text-Image search (retrieval) 텍스트가 왔을 때 이미지를 보여주거나, 이미지를 보여주면 텍스트를 매칭 시켜줌 이는 이미 존재한 것을 매칭 시키는 것 Image/video captioning 새로운 이미지에 자막 등 텍스트를 달아줌 Etc.. 이 있습니다. 이는 곧 이미지나 비디오를 해석해서 사람이 이해할 수 있는 언어로 표현하는 것입니다. 이때 중요한 두 가지 문제가 있습니다. 영상을 머신이 이해하는 것 그런 이해를 Natural Language로 표현하는 것 애초에 영상을 머신에게 이해시키는 것도 어려운데, 그런 이해를 NL..

[머신러닝 - 이론] NLP - Natural Language Processing (자연어 처리)

1. NLP (Natural Language Processing)이란? NLP란 Natural Language Processing의 약자로 자연어 처리를 뜻합니다. 이것은 언어학, Computer Science, AI의 하위 부분이며, 컴퓨터와 인간의 언어의 교집합입니다. 또한 컴퓨터가 어떻게 방대한 양의 자연어를 처리하고 분석하는지를 연구하는 분야입니다. 이 분야의 목적은 컴퓨터가 문장의 늬양스를 이해하는 것을 목표로 하며, 더 나아가 문서 안에 있는 정보나 insight를 정확하게 추출하는 것이 목적입니다. 다양한 NLP 작업들이 있지만, 대표적인 예시로 Text classfication, Machine translation, Text summarization, Language generation/u..

[머신러닝 - 이론] XAI for Deep Learning (딥러닝을 위한 설명 가능한 인공지능)

1. 전역 평균 풀링 (Global Average Pooling) GAP(Global Average Pooling)은 말 그대로 feature map 전체에 Average Pooling을 적용하는 것입니다. 즉, 각 샘플마다 하나의 숫자가 나오게 합니다. 이는 조금 파괴적인 연산이지만, 출력층의 연산에는 매우 유용합니다. GAP은 다음과 같은 연산으로 이루어집니다. \(a_k = ave(f^k) = \frac{1}{mn}\sum_{i = 1, m}^{}\sum_{j = 1, n}^{}f_{ij}^k\) 특징 맵 k번째의 화소의 평균값을 계산합니다. 따라서 k개의 결과가 나오게 되고, 이를 출력 층의 노드 c개와 연결하는 연산은 다음과 같습니다. q는 특징 맵의 개수입니다. \(s_c = \sum_{k =..

[머신러닝 - 이론] XAI - Explainable AI (설명 가능한 인공지능)

만약 여러분이 카드를 발급받을 때 거부당한다면, 은행 직원에게 이유를 물어볼 수 있습니다. 만약 여러분이 특정 질병을 처방 받는다면, 의사에게 이유를 물어볼 수 있습니다. 이처럼 인간은 이해할 수 있는 언어로, 도표나 수치를 동원해서 상대의 이해 수준에 따라 설명 수준을 조절합니다. 하지만 현재의 인공지능은 정반대입니다. 딥러닝으로 압도적이고, 인간을 뛰어넘는 성능을 제공하지만, 설명 기능이 약한 결정적 한계가 있고, 블랙박스라는 비난이 있습니다. 이는 왜 인공지능이 이러한 선택을 했는지에 대한 구체적인 설명이 어렵다는 말과 같습니다. 오히려 옛날의 규칙 기반 방법이나 결정 트리는 성능은 약하지만 설명 기능이 강합니다. 1. 결정 트리 결정 트리는 속이 훤히 보이는 유리 박스 모델입니다. 성능이 낮다는 ..