Lecture12 CS231n 16강 마지막 강의인 16강에서는 Adversarial Example에 대해서 배웁니다. 2013년부터 NN 성능은 인간 수준까지 끌어올렸습니다. Nueral Network가 좋은 성능을 이끌어낼 수 있었던 것은 CNN의 사용이 큰 지분을 차지합니다. 그러나, 입력 이미지의 약간의 변동을 주는 것(Adversarial Attack)으로 Nueral Network를 헷갈리게 만들어 잘못된 출력값을 내뱉게 공격이 가능하다는 약점이 발견되었습니다. 위 슬라이드를 보면 인간의 눈으로 봤을 때, 왼쪽과 오른쪽의 이미지는 둘 다 판다의 이미지라고 판단하지만, Neural Network의 입장에서는 왼쪽 이미지에서 noise filter를 더한 오른쪽 이미지는 긴팔 원숭이라고 판단을 하게 됩니다. 인간의 눈으로는 각 이미지.. 2024. 2. 23. CS231n 13강 우리는 이전 강의까지 다양한 Supervised Learning을 이용한 task에 대해서 알아봤습니다. 이번에는 다른 학습 방법인 Unsupervised Learning과의 차이점에 대해 알아보겠습니다. Supervised Learning Data - (x,y) 형태, x = Data, y = Label Goal - x -> y를 mapping해주는 함수를 학습 Task - classification, regression, object detection, semantic segmentation, image captioning Unsupervised Learning Data - x만 존재, x = Data , No Label Goal - Data의 숨어있는 기본적인 구조를 학습 Task - cluster.. 2024. 2. 7. CS231n 11강 이번 강의에서는 Classification이 아닌 Computer Vision task에 대해서 배웁니다. Semantic Segmentation에 대해서 알아봅니다. Image에 대한 객체를 분류하는 것이 아닌 Pixel을 분류하는 task입니다. Image내의 모든 Pixel을 카테고리별로 분류를 수행합니다. Semantic Segmentation의 특징은 instance를 구별하지 않는다는 것입니다. 위 슬라이드를 예제로 볼 때, 2마리의 Cow를 따로따로 보지 않고, Image 전체 Pixel에 대해 Cow로 Label된 Pixel들을 하나의 객체로 덩어리 지어 분류합니다. Sliding Window는 Semantic Segmentation을 위해 Image를 보는 접근 방법을 말합니다. Inpu.. 2024. 2. 6. CS231n 10강 이번 강의에서는 자연어처리에서 사용되는 RNN구조에 대해서 배웁니다. 기존에 배운 Neural Network의 경우 input = output = 1개 였습니다. 그러나 input값이 여러개이거나 output이 여러개일 수도 있습니다. RNN은 이럴때 사용됩니다. one to many는 Image Captioning에서 사용되고, many to one는 감정 분류에서 많이 사용됩니다. many to many는 번역에 사용되거나 비디오에 사용됩니다. 방금 말한 것의 공통점은 가변길이의 데이터 라는 것입니다. RNN은 가변길이의 데이터에 강합니다. RNN의 구조는 input값이 입력되면, hidden state로 들어갑니다. hidden state는 input값마다 매번 update가 됩니다. hidden .. 2024. 2. 1. CS231n 9강 이번 강의에서는 CNN Architecture를 사용한 모델들에 대해서 자세히 배웁니다. AlexNet AlexNet은 처음으로 large scale로 구성한 CNN모델입니다. Conv Layer 5개, Pooling Layer 3개, ReLU를 사용한 Fc Layer 2개, 최종 출력을 위해 Softmax를 사용한 Fc Layer 1개로 구성되어 있습니다. 많은 data Augmentation을 사용하였고, dropout 사용, SGD Momentum 0.9로 설정, lr - 1e-2으로 사용하였다고 합니다. GPU의 한계로 인하여 GPU 2개를 쓰기위해 절반씩 할당하여 연산을 수행하였습니다. VGGNet 더 작은 filter, 더 깊은 Network를 사용한 모델입니다. Layer의 수가 16,19개.. 2024. 2. 1. CS231n 8강 8강에서는 Deep Learning에 필요한 Hardware와 Software에 대해 배웁니다. CPU vs GPU CPU 더 적은 수의 core(4~10개) 각 core는 더 빠르고, 연속적 처리에 좋음 GPU 수천개의 core 각 core는 더 느리지만 동시에 일을 수행 개별적인 RAM 을 갖고, RAM 사이의 cache 존재 두 행렬곱에서 GPU가 동시연산이 가능하다는 점에서 강력한 장점을 가짐 실제 hardware적으로 CPU와 GPU는 분리되어 존재하고, 여기서 문제가 발생 문제점 Model의 Weight는 GPU의 개별 RAM에 저장되어 있고, train data는 SSD, HDD등에 저장되어 있다는 점에서 train data는 매우 큰 데이터이기에 GPU에서 train을 반복 수행할 때 데이.. 2024. 2. 1. CS231n 7강 이번 강의에서는 지난 6강에 이어 Neural Network의 training에 대해서 배웁니다. 지난 강의에서 우리는 최솟값 Loss를 찾기 위해 Optimization을 사용한다고 배웠습니다. 위 슬라이드는 Gradient descent를 사용하여 Loss가 최적화되는 과정을 시각화한 것이며, 우리의 최종 목적은 빨간 지점에 도달하여 최소 Loss값을 갖는 w를 찾는 것입니다. 우리가 배웠던 SGD는 문제점을 갖고 있습니다. 왼쪽 슬라이드에서 우리는 빨간점에서 시작하여 최적점을 찾아갈 때, Loss가 수직적으로 예민하여 지그재그로 이동하게 되고, 이는 수렴속도가 느려지게 만드는 문제를 만듭니다. 추가로 오른쪽 슬라이드와 같이 Local minimum에서도 기울기가 0이라 이를 global minimu.. 2024. 1. 28. CS231n 6강 이전 강의 5강에서는 CNN의 구조에 대해서 배웠습니다. 이번 강의에서는 Nueral Network의 training에 대해서 배울 예정입니다. Acitvation Function은 layer의 최종 출력 단계에 위치하여 비선형성을 더해주는 중요한 역할을 합니다. Activation function의 종류는 위 슬라이드와 같습니다. 하나씩 천천히 알아보겠습니다. sigmoid함수는 최종적으로 (0,1)범위의 출력을 가져옵니다. Sigmoid함수는 아래와 같은 문제점으로 인해 activation function으로 사용되지 않고, 최종 output을 낼 때만 이용합니다. 문제점 1. 기울기 소실 가능 만약 sigmoid함수의 input값이 위 -10과 +10의 값을 갖는다면, 해당 지점의 기울기는 0의 수.. 2024. 1. 28. CS231n 5강 이번 강의에서는 Convolution Layer에 대해서 배웁니다. 이전 시간에 배웠던 Fc Layer의 경우에는 32x32x3 형태의 3차원 이미지를 Flatten하여 3072x1차원의 벡터로 변형합니다. 그리고 10개의 class에 대한 10x3072의 크기를 갖는 가중치 w와의 내적을 통해 각 class에 대한 10개의 출력값을 얻습니다. 오늘 배울 Convolution Layer의 경우, FC Layer와는 다르게 공간 구조를 유지한다는 차이점이 있습니다. FC Layer의 경우 32x32x3의 이미지를 3072x1의 1차원 벡터로 변형을 하였지만, Conv Layer는 32x32x3 형태를 유지합니다. 이후 다양한 크기의 필터와의 내적 연산을 통해 activation Map을 얻게 됩니다. 위 .. 2024. 1. 25. 이전 1 2 다음