목록전체 글 (317)
AI바라기의 인공지능
1x1 컨볼루션은 컨볼루션 연산의 종류 중 하나로, 입력 데이터와 동일한 크기의 커널(kernel)을 사용하는 연산입니다. 이때 커널의 가로, 세로 크기가 모두 1인 것을 의미합니다. 1x1 컨볼루션은 주로 다음과 같은 목적으로 사용됩니다. 특성 맵의 채널 수 조절: 1x1 컨볼루션을 사용하여 입력 데이터의 채널 수를 줄이거나 늘릴 수 있습니다. 이렇게 함으로써 모델의 계산 비용을 줄일 수 있고, 모델의 복잡도를 조절할 수 있습니다. 이를테면 입력 데이터의 채널 수가 큰 경우, 1x1 컨볼루션을 사용하여 채널 수를 줄여서 모델의 크기를 줄이거나, 적은 채널 수의 입력 데이터에 대해 채널 수를 늘릴 수 있습니다. 비선형성 추가: 1x1 컨볼루션을 사용하여 비선형성(nonlinearity)을 추가할 수 있습..
Depthwise separable convolution은 CNN(Convolutional Neural Network)에서 많이 사용되는 컨볼루션 연산 방법 중 하나로, 컨볼루션 연산을 좀 더 효율적으로 수행할 수 있도록 개선된 방법입니다. 일반적으로 CNN에서는 입력 데이터에 대해 컨볼루션 연산을 수행하는데, 이 때 커널(kernel)이 입력 데이터 전체에 대해 적용됩니다. 하지만 depthwise separable convolution은 커널을 두 가지 단계로 나누어 처리합니다. 첫 번째 단계는 Depthwise Convolution입니다. 이 단계에서는 입력 데이터의 각 채널마다 따로따로 필터(kernel)를 적용합니다. 이렇게 하면 입력 데이터가 갖고 있는 채널 수에 비례해 컨볼루션 연산의 수가 ..
먼저 정보이론에 대해서 설명하겠습니다. 정보이론의 아버지라고 불리는 클로드 섀넌이 정립한 이론입니다. 정보이론(Information theory)은 정보의 양과 통신에서의 정보 전송량 등을 측정하고, 처리하는 수학적인 이론입니다. 정보이론에서 가장 기본적인 개념은 정보량(Information)입니다. 정보량은 어떤 사건이 얼마나 놀라운가에 따라서 결정됩니다. 즉, 더 드문 사건일수록 정보량이 크며, 반대로 더 일어날 가능성이 높은 사건일수록 정보량이 작아집니다. 정보량을 수학적으로 나타낼 때는 엔트로피(Entropy)라는 개념을 사용합니다. 예를들면 로또에 당첨되지 않았어~ 라는 말은 굉장히 흔한 일이기 때문에 정보량이 굉장히 작습니다. 하지만 로또에 당첨되었다는 것은 굉장히 흔하지 않은 일이기 때문에 ..
앙상블(Ensemble) 앙상블은 조화 또는 통일을 의미합니다. 하나의 모델을 사용하는 것이 아닌 여러 개의 모델을 이용하여 그 모델들의 예측 결과를 활용하는 것이 목적입니다. 그렇게 된다면 더 정확한 예측값을 얻을 수 있습니다. 앙상블에는 이렇게 여러가지 모델을 이용하여 예측값을 얻는 방법 뿐만아니라 정형화되어 있는 방법도 존재합니다. 바로 배깅(Bagging), 부스팅(Boosting) 입니다. 배깅(Bagging) Bagging은 Bootstrap Aggregation의 약자입니다. 배깅(Bagging)은 머신러닝에서 사용되는 앙상블 학습(Ensemble Learning) 방법 중 하나입니다. 배깅은 앙상블 학습 중 하나로, 훈련 데이터셋에서 중복을 허용하여 샘플링한 작은 데이터셋들을 각각의 모델에..
인공지능에서는 agent라는 용어를 사용합니다. 과연 이 agnet 는 무엇이며 어떤 의미일까요?? agent : 현재 상태 즉 환경을 인식하고, 그것을 바꾸기 위해 특정한 액션을 수행한다. agent function : agent가 환경을 인식하고 액션으로 대응시킨다. agent program : agent function은 agent program으로 구현된다. 즉 agent function을 물리적으로 실행될 수 있게 구체적으로 구현하는 것 rationality : agent가 가용한 정보와 불확실성, 잠재적 비용 및 편익을 고려하고 최상의 조치를 선택하여 최선의 액션을 수행하는 것 autonomy : 자율성. 주변 환경을 관측하고, 판단해서 행동하는 단계를 사람의 개입 없이 스스로 결정할 수 있는..
부트스트랩은 간단하게 설명하면 모수의 분포를 추정하는 방법입니다. 일반적으로 우리는 모수는 알 수 없다고 알려져 있지만 이 부트스트랩 방법을 사용하게 되면 모수의 분포를 어느정도 추정할 수 있습니다. 부트스트랩은 데이터가 정규분포를 따라야 한다는 가정이 꼭 필요하지는 않습니다. 어떤 방법으로 진행되는지 예시로 설명하겠습니다. 모집단의 크기 : 10억개 표본의 크기 : 300개 이 경우에는 표본이 300개로 굉장히 적은 편에 속합니다. 부트스트랩 방법을 사용하면 어떻게 될까요? 1. 300개의 표본 중 하나를 뽑아 기록하고 다시 제자리에 둡니다. 2. 이를 n번 반복합니다. 3. n번 재표본추출한 값이 평균을 구합니다. 4. 1~3 단계를 R번 반복합니다. (R은 반복횟수 사용자가 설정!) 5. 평균에 대..
딥러닝 네트워크 딥러닝 네트워크를 구성할때 다양한 layer와 정규화 기법을 사용합니다. convolutional layer dropout layer pooling layer batch normalization activation function ... 이와 같이 다양한 기법들을 사용하고 있는데 과연 어떤 순서로 주로 사용되고 있는지, 어떤 순서로 사용할 것을 권장하는지 알아보겠습니다. Batch Normalization 먼저 Batch Normalization의 경우 "Batch Normalization: Accelerating Deep Network Training b y Reducing Internal Covariate Shift" 의 저자인 Sergey Ioffe는 Convoluter Layer ..