본문 바로가기

CVLab/cs231n (2016)15

2024.11.07 Q&A 1. 색상 왜곡에서 PCA(주성분 분석)를 사용한 방법 우선, PCA는 중요한 축을 찾는 것이다. 이 중요한 축(PCA 1st)은 축의 방향으로 데이터가 넓게 퍼져있다는 것이다. 그 축을 기준으로 데이터가 다양한 특징을 가지고 있다는 것이다. 그리고 다음 축(PCA 2nd)은 PCA 1st를 직교하는 축이 된다. 이제 PCA를 이용한 색상 왜곡을 해보자. PCA를 이용한 색상 왜곡에서 중요한 핵심은 RGB 각각의 색상을 독립적인 특징으로 보고, 이들 간의 상관관계를 통해 새로운 축을 정의하는 것이다. 1. 색상의 특징 찾기R, G, B를 각각 별개의 특징으로 보고, 이 세가지 색상이 어떻게 함께 변하는지 살펴보면서 서로 어떻게 영향을 주는지 보면서 색상의 중요한 변화를 알아낸다. 2. 가장 중요한 변화 .. 2024. 11. 9.
cs231n - lecture11(CNNs in practice) Data Augmentation (데이터 증강): 원본 이미지를 변형하는 과정을 추가하여, 모델의 성능을 증가시키는 방법이다. 즉, label을 변하지 않고 label의 pixel의 값을 여러 형태로 변형 시켜 모델을 학습시키는 것이다. Horizontal flips(수평 뒤집기): 이미지 좌우를 뒤집는 간단한 방식  Random crops / scalse(무작위 자르기 및 크기 조정): 이미지를 무작위로 자른 후 일정한 크기로 맞추는 방식 ResNet에서는 아래와 같은 방식을 사용했다. [이미지 생성]1. [256, 480] 사이의 하나의 수를 골라 이를 L이라고 한다. (이 때, L은 width와 height 둘 중 하나로, 더 짧은 쪽의 길이를 의미한다.) 2. 학습시킬 이미지를 이 L을 기준으로 .. 2024. 10. 27.
2024.10.11 Q&A [lecture09]  1. Deconvolution이란? : Deconvolution 분류결과를 통해서 이미지를 생성하는 것이다. 즉, 원래는 이미지를 CNN처리를 하면 이미지에 맞는 분류 결과가 온다. 이를 반대로 진행해서 분류 결과를 통해서 분류 결과에 맞는 이미지를 생성하는 것이다.  예를 들어 고양이와 강아지로 분류를 한 모델이 있다고 가정하고, 우리는 고양이에 대해서 관심이 있는 상태라고 생각해보자.그러면 강아지 관련된 뉴런의 경사는 0으로 만들고, 고양이에 대한 경사는 1로 만들어서 역전파를 진행한다. 이렇게 진행하면 아래와 같은 고양이와 닮은 약한 이미지가 생성된다.  2.  Deconvolution의 목적 위의 과정을 진행하면 결국 결과 값으로는 해당 모델이 고양이라고 생각하고 있는 이미.. 2024. 10. 11.
cs231n - lecture10(RNN) Recurrent Neural Networks (RNN)  기본적인 NN: Input Layer와 Output Layer는 순서가 없지만, 각각에 대해서는 순서가 있다고 처리를 할 수 있다 Image Captioning: 이미지를 보고 그에 맞는 설명을 자동으로 생성하는 기술. Sentiment Classification: 문장의 감정을 분석하여 긍정적인지 부정적인지를 분류하는 기술. Machine Translation: 한 언어로 된 문장을 다른 언어로 번역하는 기술. Video classification: 비디오의 각 프레임을 분석하여 그 내용을 분류하는 기술. 비디오에서 중요한 것은 예측이 현재 시점의 프레임만 하는 것이 아니라 과거의 모든 프레임에 대한 처리가 되어야한다. RNN 작동 원리  RN.. 2024. 10. 9.
cs231n - lecture09(CNN의 시각화 및 이해) [CNN의 시각화]   Visualize patches that maximally activate neurons : 어떤 뉴런이 어떤 특징을 학습했는지?를 시각화   위 이미지를 보면 빨간색 뉴런은 사람을 위주로 학습을 했고, 파란색 뉴런은 점을 기준으로 학습을 했고, 초록색은 빨간색을 기준으로 학습을 했다는 것을 시각적으로 알 수 있다. Visualizing Filters and Kernels : 어떤 필터가 이미지의 어떤 특징을 추출하는지?를 시각화 첫번 째 Conv Layer를 시각화 한것이다. Conv2, Conv3부터는 이미지에 대한 것이 아니라 이전 Layer에 대한 값이기 때문에 해석에 용이하지 않다.  Visualizing Representation Space :  CNN이 이미지의 특징을.. 2024. 10. 6.
2024.10.04 Q&A Training NN part(1) 1. CNN 전이학습 위처럼 대형 Data Set에서 CNN을 이용해서 Feature map을 추출하고 Feature map을 기반으로 Classifier를 통해서 분류를 했을 때 1000개 Class가 나온다고 가정하자.  하지만 우리가 실제로 필요한 10개라고 했을 때 1000개의 클래스가 아닌 10개의 클래스가 필요하다. 그랬을 때는 모든 학습을 다시 하는 것이 아니라 뒤에 있는 Classifier만 다시 학습해서 대형 Data Set을 통해서 나온 Feature map은 유지하되, Classifier만 다시 학습시킨다.  이게 바로 CNN 전이 학습이다.    2. 활성화 함수를 사용하는 이유CNN이나 다른 신경망에서 선형적인 연산(곱셈, 덧셈)만으로는 복잡한(.. 2024. 10. 4.
cs231n - lecture08(Localization and Detection) [Localization and Detection] Classification vs Classification + Localization Classification은 이 이미지가 고양인지 강아지인지 분류하는 것이고, Classification + Localization는 이 사진에서 고양이가 어디에 있는지 Boxing을 해주는 것이다. Object Detection vs Instance Segmentation Object Detection은 고양이, 강아지, 오리가 어디에 있는지 Boxing해 주는 것이고, Instance Segmentation는 고양이, 강아지, 오리의 형상대로 경계를 따주는 것을 의미한다. 따라서, 우선 Localization, Object Detection에 대해서 다뤄보자! [C.. 2024. 10. 3.
cs231n - lecture07(CNN) [대략적인 CNN 흐름도]   입력층: 데이터를 받아들이는 단계. 주로 이미지 같은 데이터가 들어옴. 합성곱층(Convolutional Layer): 필터를 통해 이미지를 분석하고, feature map(Activation Map)을 생성하는 단계. 활성화 함수(ReLU): 합성곱 연산 결과에 비선형성을 추가해 복잡한 패턴을 학습할 수 있게 하는 단계. 풀링층(Pooling Layer): feature map(Activation Map)의 크기를 줄여 데이터의 양을 줄이고, 중요한 정보만 남기는 단계. 완전 연결층(Fully Connected Layer): 지금까지 얻은 정보를 바탕으로 최종적으로 분류나 예측을 수행하는 단계. 출력층: CNN이 최종적으로 내리는 예측 결과가 나오는 단계. CNN의 원리C.. 2024. 10. 1.
cs231n - lecture06(Trainit NN Part 2) ⭐️⭐️⭐️ NN(신경망)을 Training하는 프로세스 ⭐️⭐️⭐️   1. 데이터의 미니배치를 샘플링전체 데이터 셋에서 미니배치를 샘플링(무작위로 선택)하여 학습에 사용한다. 이는 계산 효율성을 높이고, 매 스텝마다 모델이 다른 데이터에 대해 학습할 수 있도록 한다.  2. Forward pass입력 데이터를 신경망에 통과시켜 출력 값을 얻고, 그 출력 값과 실제 라벨 간의 차이(손실, Loss)를 계산한다. 이를 통해 모델의 예측 성능을 평가한다.  3. Backward pass (역전파)출력층부터 시작해서 각 층의 노드(뉴런)들이 손실에 얼마나 기여했는지를 계산한다. 이를 위해 chain rule(연쇄 법칙)을 사용하여, 출력층에서 손실에 대한 기울기를 먼저 구하고, 그 값을 기반으로 한 층씩 거.. 2024. 9. 28.
cs231n - lecture05(Trainit NN Part 1) NN 구조에 대한 굉장히 쉬운 설명   Input Layer(정보 수집 Team)입력층은 데이터를 처음 받아들이는 층이다. 비유하자면, 이 층의 각 뉴런들은 특정 작업을 담당하는 사람들이 모인 팀이라고 생각할 수 있. A 뉴런은 "나는 이 이미지의 경계를 살펴볼게"라고 하며, 이미지에서 경계 부분을 분석한다.B 뉴런은 "나는 이 이미지의 색상 패턴을 살펴볼게"라고 하며, 색상 정보를 추출한다.C 뉴런은 "나는 이 이미지의 밝기를 볼게"라고 하며, 이미지의 명암을 분석한다.이렇게 입력층의 뉴런들은 각각의 데이터를 분해하여 기본적인 정보(특징)를 분석한다.  Hidden  Layer(중간 관리자 Team)은닉층은 입력층에서 처리된 기본 정보를 기반으로 더 복잡한 특징을 학습한다. 은닉층을 중간 관리자들이 모.. 2024. 9. 28.
2024.09.27 Q&A 1. 수작업 기반 알고리즘 (SIFT, HOG)가 비효율적인 이유 수작업 기반의 SIFT나 HOG가 비효율적인 이유는 아래와 같다. SIFT나 HOG는 이미지 속에서 사람이 직접 정의한 특징(예: 경계, 코너, 모서리 등)을 찾아낸다. 이 과정에서 어떤 특징이 중요한지 사람이 정해야 한다. 사람이 특징을 정하는 과정은 많은 코스트가 들고, 주관적일 수 있어 만드는 사람마다 모델의 성능이 다를 수 있다.또한, 특정 문제에 대한 도메인 지식이 필요한데, 복잡한 문제에서는 사람이 중요한 특징을 정확하게 정의하기 어렵다.이렇게 사람이 수작업으로 진행해야하는데 한계가 생긴다. 그리고 딥러닝 기반의 CNN 모델은 수많은 데이터를 통해서 스스로 특징을 할 수 있다. 따라서 SIFT나 HOG처럼 수작업으로 학습시키는 .. 2024. 9. 27.
cs231n - lecture04(역전파, 신경망) 역전파(Back Propagation)  아래와 같이 x와 W로 total Loss를 구하는 과정을 Computational Graph라고 한다.  이제 역전파를 계산해보자.  대략적인 방식은 아래와 같다.1. 각 local gradient 2. Chain Rule 적용을 위한 gradient들 구하기 3. Input이 마지막 단에 끼치는 영향 구하기 4. 의미파악      우선 아래와 같은 Computational Graph가 있다고 가정하고 역전파 계산하기    1. local gradient 구하기 - Forward Pass에서 Local Gradient를 구한다.   2. Chain Rule 적용을 위한 gradient들 구하기    3. Input이 마지막 단에 끼치는 영향 구하기 - Back.. 2024. 9. 27.
cs231n - lecture03(손실함수, 경사하강법) Loss function(손실함수):  손실 함수는 모델이 예측한 값과 실제 값 사이의 차이를 수치로 나타내는 함수이다. 쉽게 말해서, 모델이 얼마나 틀렸는지 측정하는 도구이다.    1. Multicalss SVM loss - Hinge loss SVM loss를 Hinge loss라고 부르는 이유는 SVM의 손실 함수가 힌지(Hinge) 모양의 특성을 가지기 때문이다.  쉽게 설명하면:x축: S(j)는 예측값(모델이 예측한 점수)S(yi) 는 정답 클래스의 스코어(점수)고, 이걸 기준으로 예측값 S(j)​가 얼마나 맞았는지 판단한다.y축: 이 축은 손실(Loss)을 나타내. 손실 값은 예측이 잘못되었을 때 증가한다.그래프의 해석:파란색 굵은 선이 바로 힌지 로스 곡선이다.그래프가 1에서 꺾이는 지점을.. 2024. 9. 23.
cs231n - lecture02(이미지 분류, KNN, Linear Classification) 이미지 분류(Image Classification) 이미지는 기본적으로 3차원 배열로 구성된다. 즉, 높이 x 넓이 x RGB(0~255) 이렇게  3차원 배열로 구성된다.하지만 이미지를 보는 시각에 따라서 이미지는 다르게 보일 수 있다. 예를 들면 밝기의 차이, 형태의 차이, 물체에 가려진 유무, 배경과 같은 색상의 이미지 객체, 여러 이미지 객체 등 시각에 따라서 다르게 보인다. 각기 다른 시각에서 나오는 이미지들을 3차원 배열로 구성했을 때 숫자값의 큰 격차가 생기게 된다. 이를 Sematice gap이라고 한다.   우선, 기본적인 Image Classification 함수는 아래와 같다.def predict(image): # Some magic here return class_labe.. 2024. 9. 22.
cs231n - lecture01(컴퓨터 비전의 역사) 시대에 따른 컴퓨터 비전의 역사  [기원전 5억 4천 3백만 년] 생물의 종이 굉장이 다양해지는 '진화의 빅뱅'의 가장 유력한 이론이 바로 5억 4천만년 전 최초의 눈이 생겨났다는 것이다. 눈이 생겨났다는 건 아래의 상황을 초래한다.1. 생물의 삶이 능동적으로 바뀌고 그 결과, 일부 포식자들은 먹이를 찾아 다니고 먹이들은 포식자로부터 달아나는 상황 발생2. 먹이들은 살아남기 위해서 빠르게 진화한다.3. 기존의 종들이 진화하면서 생물의 종이 굉장히 다양해진다. Vision은 지능을 가진 동물들의 가장 큰 감각 체계로 발전했다. Vision은 우리가 생존하고, 일하고, 움직이고, 어떤 것들을 다루는 여러 행위를 가능하게 해준다. 따라서, Vision은 굉장히 중요하다.  [1959년 - Hubel & Wie.. 2024. 9. 21.