[Day33] Object Detection & CNN Visualization
·
AI/부스트 캠프 AI tech
[Day33] Object Detection & CNN Visualization Object detection https://n-brogrammer.tistory.com/123 CNN visualization 길이 문제로 조정 중... torch.autograd https://n-brogrammer.tistory.com/124 중요 autograd saliency_map activation map 피어세션 도커, 컨테이너, 가상머신에 관련된 발표를 진행하였다.(탐) 코드 리뷰, 코드 작성법에 대한 전반적인 개념들을 설명해 주었다.(죠르디)
torch.autograd
·
AI/이론
Autograd¶ Automatic differentiation이라고도 불리고 이건 모든 DL library에 내장 되어 있다. forward와 backward pass가 가능하다. 라이브러리 로드¶ In [1]: import numpy as np import torch x에 대한 y gradient 구하기¶ In [2]: x=torch.randn(2,requires_grad=True) print(x.grad) None In [3]: x=torch.randn(2,requires_grad=True) y=x*3 gradients=torch.tensor([100,0.1],dtype=torch.float) y.backward(gradients) print(x.grad) print(y.grad) tensor([3..
Object Detection
·
AI/이론
Object Detection¶ ✅ Two-stage detector¶ 1️⃣ R-CNN¶ Input image를 구한다. Selective Search 같은 것을 통해서 region proposals을 먼저 구한다.(2천개 이하) 이제 각 region propsals을 Image Classification Network에 넣는다. 이때 이미지의 크기는 입력에 맞게 조정해서 넣어준다. 그 해당 결과로 분류를 하게 된다. 📌 단점 각 region proposals을 다 CNN에 넣어서 처리해야 하기 때문에 속도가 굉장히 느리다. region proposals는 별도의 hand design된 알고리즘을 사용해서 학습을 통해서 성능 향상의 한계가 있다. 2️⃣ Fast R-CNN¶ 영상 전체에 대한 featu..
[Day32] Semantic Segmentation
·
AI/부스트 캠프 AI tech
[Day32] Semantic Segmentation Image classification II https://n-brogrammer.tistory.com/120 Semantic segmentation https://n-brogrammer.tistory.com/121 중요 1x1 convolutions import torch import torch.nn as nn # 1x1 convolutions nn.Conv2d(in_channel,out_channel, kernel_size=1) 1x1 convolutions는 kernel_size=1이다. 이때 input의 channel size를 out_channel로 압축하는 효과를 낸다. Upsampling torch.nn.Upsample(scale_facto..
Semantic segmentation
·
AI/이론
Semantic segmentation¶ ✅ Semantic segmentation architectures¶ 1️⃣ Fully Convolutional Networks(FCN)¶ end-to-end architecture input size에 상관없이 input size에 맞게 output을 출력해 낼 수 있다. 📌 Fully connected vs Fully convolutional¶ Fully Connected layer: Output은 고정된 차원의 vector를 가지고 공간의 정보는 없어진다. Fully Convolutional layer: 공간 좌표가있는 분류 맵을 출력한다. 만약 Fully-connected로 분류를 하게 된다면 위와 같이 모든 feature map에 대해서 Flattenin..
Image classification II
·
AI/이론
Image classification II¶ ✅ GoogLeNet¶ 1️⃣ Inception module¶ 이전 층의 input activation에 여러 filter을 적용한다. 1x1, 3x3, 5x5 convolution filters 3x3 pooling operation 채널 축으로 모든 필터 output을 연결한다. ❗ 그런데 이렇게 사용하게 되면 많은 계산량을 가지게 된다. 이를 해결하기 위해서 아래 그림과 같은 구조로 재구성 필터를 적용하기 전 1x1 convolutionds으로 채널 수를 줄여준다. 쉽게 말하면 압축을 한 후 필터를 적용하여 계산량을 줄인다. 📌 1x1 convolutions¶ 위 처럼 1x1 filter의 크기가 2이므로 input의 4개 채널이 2개의 채널로 압축이 이..
[Day31] Image Classification I & data Augmentation
·
AI/부스트 캠프 AI tech
[Day31] Image Classification I & data Augmentation Image classification I https://n-brogrammer.tistory.com/117 Annotation data efficient learning https://n-brogrammer.tistory.com/118 중요 RGB to HSV HSV (색상, 채도, 명도) 색을 RGB로 많이 표현하지만 RGB말고 HSV로 나타낼 수 있다. H(Hue) 색상: 빨강, 파랑, 노랑 등과 같은 색의 종류를 나타낸다. H는 0 ~ 360의 범위를 가진다. H가 0보다 작으면 360을 더하여 최종 H가 구해진다. 0 = 빨강(Red), 120 = 초록(Green), 240 = 파랑(Blue) S(Satur..
Annotation data efficient learning
·
AI/이론
Annotation data efficient learning¶ ✅ Data augmentation¶ 1️⃣ Learning representation of dataset¶ 우리가 얻어지는 Dataset은 거의 대부분 편향된 데이터이다. 왜냐하면 우리가 얻는 이미지는 카메라로 찍은 이미지가 될 것이고 이것은 사람들이 이쁘게 찍기위한 구도로 거의 비슷한 각도로 많이 존재하기 때문이다. 따라서 traing data와 real data와는 차이가 존재한다. 📌 훈련 데이터 세트는 실제 데이터의 일부만 포함한다.¶ 우리는 이러한 차이를 메워서 모델의 정확도를 높일수 있다. 2️⃣ Data augmentation¶ 데이터 셋에 다야한 이미지 변환을 적용한다. Crop, Shear, Brightness, Persp..
Image classification I
·
AI/이론
Image classification I¶ ✅ 먼저 가장 간단한 Sigle Layer Neural Network를 살펴 보자¶ 위 Sigle Layer Neural Networks는 Fully connected Layer라고도 불린다. 모든 픽셀들을 서로 다른 가중치로 내적을 하고 Non-Linear Activation Function을 통해서 분류 스코어를 출력하는 간단한 모델이다. ✅ 위 간단한 모델을 영상 분류에 사용하면 어떻게 되는지 살펴봐야 한다.¶ 위 Fully connected Layer의 연산은 위와 같이 진행이 된다. 그 결과로 분류 스코어를 얻을 수 있다. W값을 확인해 보면 위 그림과 같다. 이때 확인해 보면 W는 Input image의 그림과 비슷하다는 것을 확인 할 수 있다. 📌 ..
[Day30] AI + ML과 Quant Trading & AI Ethics
·
AI/부스트 캠프 AI tech
[Day30] AI + ML과 Quant Trading & AI Ethics 퀸트 트레이딩의 전반적인 소개와 AI 윤리에 관하여 배운다. AI + ML과 Quant Trading 퀀트 트레이딩에 대해서 모르고 있었는데 새롭게 알게되어서 흥미로웠다. 여러 가지 전략이 재미있었다. 리서치의 전체적인 과정이 이해하기 좋았다. AI Ethics AI 윤리에 대해서 제대로 생각하게 되었다. bias가 여러곳에 숨겨져 있을 수 있다. AI가 사회적 문제 및 영향이 무엇인지 알게 되었다. 피어세션 backprob에 대해서 발표를 하였다. (죠르디) CNN의 전체적인 과정을 발표. (찰스)
[Day29] NLP를 위한 언어 모델의 학습, 평가 & AI와 저작권법
·
AI/부스트 캠프 AI tech
[Day29] NLP를 위한 언어 모델의 학습, 평가 & AI와 저작권법 NLP 모델의 학습 평과와 내가 만든 모델이 합법인지 불법인지에 대해서 알아봤다. NLP를 위한 언어 모델의 학습, 평가 자연어 처리 분야에서 사용하는 언어 모델과 성능 평가를 잘 확인하게 되었다. 대표적인 예시를 설명해 주어서 좋았다. AI와 저작권법 저작권법을 더 잘 알 수 있어서 좋았다. 데이터를 쓸 때 유의 사항을 알게된거 같다. 라이센스에 대해서 흥미롭게 봤다. 피어세션 백준 1062번: 가르침 풀고 토론을 진행 하였다. # 1062번: 가르침 from itertools import combinations N,K=map(int,input().split()) # 가장 먼저 K값에 따라서 분류 if K
[Day28] 캐글 경진대회 노하우 & Full Stack ML Engineer
·
AI/부스트 캠프 AI tech
[Day28] 캐글 경진대회 노하우 & Full Stack ML Engineer 캐글은 세계에서 가장 유명한 AI 경진대회 플랫폼이다. 캐글 경진대회 캐글의 전반적인 소개로 너무 좋았다. 어떻게 시작해야 하는지와 캐글 용어들에 대해서 자세히 알게 되었다. 제출까지 파이프 라인을 먼저 만들고 진행하는 것이 좋다. 이 파이프 라인을 기준으로 파라미터 및 feature engineering을 통해서 점수를 개선한다. 또 이 파이프 라인이 너무 오래 걸리면 다른 방법을 찾아보는 것이 좋다 ex) GPU를 더 좋은 것으로 바꾼다 or 데이터를 줄여본다. Full Stack ML Engineer Full stack의 전반적인 파이프 라인으로 이해하기 좋았다. Data version 관리 및 loader개발은 유익한..
[Day27] 서비스 향 AI 모델 개발 & AI 시대의 커리어 빌딩
·
AI/부스트 캠프 AI tech
[Day27] 서비스 향 AI 모델 개발 & AI 시대의 커리어 빌딩 AI 관련하여 서비스와 커리어 빌딩에 관한 전반적인 소개 서비스 향 AI 모델 개발 회사에서 AI 모델링에 대한 전반적인 소개로 무엇을 해야 하는지 깔끔하게 정리가 되었다. 데이터 셋을 준비하는 방법에 대한 설계 방법을 예시를 들어 설명하여 확실히 이해가 됐다. AI 시대의 커리어 빌딩 여러 종류의 AI 엔지니어 포지션이 있다는 것을 볼 수 있어 좋았다. AI에 필요한 역량을 잘 정리해 놓아 학습 방향이 잡히는 거 같다. 피어세션 유니온 파인드(Union - Find) 개념 확인하기1 개념 확인하기2 위 개념을 이용한 알고리즘 문제를 풀고 토론을 진행. 백준 1976번: 여행가자 # 1976번: 여행가자 def find(x): if x..
그래프 신경망이란 무엇일까? (심화)
·
AI/이론
그래프 신경망이란 무엇일까? (심화)¶ ✅ 그래프 신경망 복습¶ 그래프 신경망이란 무엇일까? (기본) ✅ 그래프 신경망에서의 어텐션¶ 1️⃣ 기본 그래프 신경망의 한계¶ 📌 기본 그래프 신경망 vs 그래프 합성곱 신경망¶ 기본 그래프 신경망에서는 이웃들의 정보를 동일한 가중치로 평균을 낸다. 그래프 합성곱 신경망 역시 단순히 연결성을 고려한 가중치로 평균을 낸다. 2️⃣ 그래프 어텐션 신경망¶ 📌 그래프 어텐션 신경망(Graph Attention Network, GAT)에서는 가중치 자체도 학습한다.¶ 실제 그래프에서는 이웃 별로 미치는 영향이 다를 수 있기 때문이다. 가중치를 학습하기 위해서 셀프-어텐션(Self-Attention)이 사용된다. 📌각 층에서 정점 $i$로부터 이웃$j$로의 가중치 $\a..
그래프 신경망이란 무엇일까? (기본)
·
AI/이론
그래프 신경망이란 무엇일까? (기본)¶ ✅ 정점 표현 학습 복습¶ 그래프의 정점을 어떻게 벡터로 표현할까? 📌 출력으로 임베딩 자체를 얻는 변환식 임베딩 방법은 여러 한계를 갖는다.¶ 학습이 진행된 이후에 추가된 정점에 대해서는 임베딩을 얻을 수 없다. 모든 정점에 대한 임베딩을 미리 계산하여 저장해두어야 한다. 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 없다. 📌 출력으로 인코더를 얻는 귀납식 임베딩 방법은 여러 장점을 갖는다.¶ 학습이 진행된 이후에 추가된 정점에 대해서도 임베딩을 얻을 수 있다. 모든 정점에 대한 임베딩을 미리 계산하여 저장해둘 필요가 없다. 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 있다. ✅ 그래프 신경망 기본¶ 1️⃣ 그래프 신..