반응형

2024/11 18

Gradient descent, neural networks learn

신경망 학습의 핵심은 코스트 함수(cost function)를 최소화하는 데 있습니다. 이 과정은 신경망이 입력 데이터를 학습하고, 주어진 문제에 대해 최적의 출력을 생성하도록 이끄는 중요한 원리입니다. 코스트 함수는 모델의 출력과 실제 값 간의 차이를 측정하는 지표로, 경사하강법(Gradient Descent)을 사용해 이를 점차 줄여갑니다. 경사하강법은 매끄러운 코스트 함수 위에서 최솟값을 찾아가는 최적화 방법으로, 신경망이 학습 과정을 통해 점점 더 정확한 예측을 할 수 있도록 돕습니다.신경망의 한계: 환경적 제약신경망은 숫자를 잘 인식할 수 있지만, 숫자를 "그릴 줄" 아는 것은 아닙니다. 이는 신경망이 엄격히 제한된 훈련 환경에서 학습하기 때문입니다. 훈련 과정에서 신경망은 주어진 격자 안에서만..

[오픈소스소프트웨어] 불린 변수

전형적인 불린 변수명을 사용 - done,error,found,success,ok참이나 거짓을 함축한 이름을 사용 - status -> error or statusOKsourceFile -> sourceFileAvailable, sourceFileFound긍정적인 이름을 사용 - notFound, notDone, notSuccessful 같은 경우 부정이 첨가된 경우 읽기 어려워짐접두사를 사용하여 그룹의 의미 전달 ex)Color_Red, Planet_Earth, Month_Jnnuary 클래스 내에 사용되는 경우에는 접두사를 생략할 수도 있다.Color.Color_Red -> Color.Red 용도에 따른 명명 규칙들 - 상수상수가 나타내는 숫자보다는 추상적 대상을 표현하도록 한다.-final int ..

[cs231n] CNNs in practice

Augmentation (증강)CNN에는 이미지와 label이 존재합니다. 이것으로 오차를 줄여나가는 방법으로 분류를 합니다.  데이터 증강에서는 원본의 이미지를 어떤 식으로든 변형하는 과정 하나가 추가가 됩니다. 어떠한 변형 방법을 이용할 것인지는 다양한 증강 방법이라고 볼 수 있습니다. 데이터 증강은 레이블은 변함이 없고 픽셀의 내용을 바꿈변경된 데이터로 학습을 함매우 폭넓게 이용이 됨 1. Horizontal flips이미지를 거울에서처럼 반대로 만들어주는 것으로 mirror image라는 표현도 합니다. 2. Random crops/scales이미지를 랜덤하게 잘라주고 스케일도 다양하게 해줍니다. 랜덤하게 잘라내고 크기를 가지는 것을 학습을 시키는 것입니다. 이미지 랜덤 선택 [256, 480]트..

[cs231n] RNN, LSTM

coco 같은 경우 12만의 이미지를 가지고 있는 거대 데이터입니다. 이 데이터를 바탕으로 coco를 사용하면 우리가 데이터를 큰 학습 이 모델을 사용하면 정상적으로 사용가능합니다. RNN이 좋은 성과를 보이고 있는데 RNN은 이미지를 전체적으로 한번만 보고 끝나지만 attention은 이미지 특정 부분을 보고 그 단어를 추출하는 것으로 어떤 부분을 보고 각 단어를 판단하는 것입니다. 이미지를 한번에 보는 것이 아닌 부분 부분을 보고 문장을 추출해내느 것입니다. 단순히 단어를 생성하는 것이 아니라 어디를 봐야하는지 알려주는 것으로 굉장히 주목받는 모델입니다.  RNN 응용 - LSTMRNN은 구조적으로 제약이 많아 실제 현업에서 사용되기 어렵습니다. RNN에서는 hidden state만 존재했지만, LS..

[cs231n] Visualization, Adversarial examples

Deconv approachesneural net이 있을 때 w0, x0, w1, x1, w2에서 loss에 대한 영향력을 구할 때 임의 뉴런이 존재할 때 임의 뉴런만 1.0을 하고서 역전파를 했을 때 이미지에 대한 시각화를 보여줄 수 있으며 조금 더 선명하게 만들어주는 것은 Guided backpropagation을 사용하면 positive한 것만 반영을 하면서 선명한 이미지를 얻을 수 있게 됩니다.  RELU대신에 modified RELU를 이용합니다. 관심있는 뉴런만 놔두고 나머지는 0으로 둡니다. RELU는 forward pass를 통해서 0보다 작은 것은 0으로 처리하고서 0으로 가고 나머지 부분에 대해서만 그대로 backward pass가 진행되는 것을 알 수 있습니다. guided backp..

[cs231n] Localization - as Regression

1. classification 모델 학습 2. regression head 추가  3. regression head 부분만 학습  4. test time 때 classification과 regression 둘 다 이용해 산출  정해진 것을 찾는 것은 regression으로도 잘 동작하므로 detection을 사용하지 않고도 심플하게 구할 수 있으며 사람의 자세를 평가해서 관절을 표시해주는 것도 regression을 해서 쉽게 구현이 가능합니다. Regression으로 하는 것은 간단하면서 강력하기 때문에 여러 사례에 응용이 가능하지만 대회 같은 곳에서는 이 방법으로는 수상이 어려우므로 Sliding window를 사용해야 합니다.   Sliding window 이미지를 한번만 돌리지 않고 여러번을 돌리..

[cs231n] CNN

공간적으로 이미지를 슬라이스하면서 dot products를 해나가는 것입니다.  처음에 32 X 32 X 3의 input을 받았을 때  actviation 관점에서 28 X 28 X 6의 새로운 형태의 이미지로 Rerepresentation 했다고 칠 때 다음 input으로 전달이 됩니다. 이미지를 받았고 Convolution layer를 돌리면 6, 5X5X3 -> 28X28X6 Activation volume을 얻게 되고10, 5X5X6의 필터를 거친다면  -> 24X24X6 형태가 됩니다.  제어를 해야하는 파라미터는 당연히 필터의 하나하나의 값들이 됩니다. CONV - RELU - POOL 반복하고 계산하는 방식으로 합니다. 공간의 차원에 대해 생각을 해보면 32X32X3 의 이미지에 5X5X3F..

[cs231n] Training NN

1960년대 퍼셉트론을 쌓아가기 시작하는데 이때 최초의 멀티 layer 퍼셉트론 network가 되지만 hardware였습니다. 이때 가중치들 즉 어떤 파라미터의 approach를 도입한 것만으로도 큰 도약으로 보이며 이에 대한 기대가 매우 컸습니다. 하지만 이후  컴퓨터의 성능 등의 문제로 효과는 미치지 못했으며 80년대 중반까지는 신경망의 암흑기라 불리는 침체기로 접어들게 되었습니다.  이후 1986년에 제프리 힌턴 교수님 등 공저자가 포함된 back-propagation을 도입하며 이는 미분이 가능하며 가중치를 체계적인 방법으로 찾아갈 수 있다는 것을 의미합니다.  2006년 경 각 단계 RBM을 이요해서 학습 시키고 계속하고 학습시키면서 각각 선행학습을 시킨 다음에 이들을 큰 덩어리로 묶어서 ba..

[cs231n] 3강 Neural Network NN

Neural network를 보면 히든 레이어에 100개의 히든 노드가 있다고 가정하고  하나의 feature를 감당한다고 할 때, 100개 중에 한개의 히든 노드는 빨간색의 자동차를 담당하는 노드다 이런 식으로 표현할 수 있습니다. 하나의 뉴런이 여러개가 연결이 되면서 전달반복이 일어나게 됩니다. 유사하게 본다면 x0이라는 데이터가 들어와서 w0이라는 가중치와 연산을 하고 이것들이 모여서 cellbody 내에서 단순한 합연산이 이루어지게 되고 activation function을 이요해서 axon을 통해 다음 뉴런으로 전달합니다.이 activation function 중에 전통적으로는 sigmoid function이 많이 쓰였습니다. x가 아무리 작아져도 y값은 0이상이 되고 x가 아무리 커지더라고 y..

[cs231n] 2강 Classification Pipeline

k-Nearest Neightbor조금 더 부드러운 Classification을 수행한 것으로 인접한 K개를 묶어서 판별하는 것입니다.  하이퍼파라미터를 설정하기 위해서 여러번의 실험을 해야하기 때문에 여러번의 data를 마련해야 합니다. 일부분으로 하이퍼파라미터를 튜닝하기 위한 validation을 만들어냅니다. 트레이닝 데이터 수가 적은 경우에는 Cross Validation을 활용해도 됩니다. 하지만 최근접아웃 방식은 위의 4개의 사진을 동일하게 인식합니다. 이는 최근접아웃 방식으로 하다 보니 발생하는 문제이며 이렇기에 현재에는 잘 쓰이지 않는 알고리즘입니다. Linear Classifier파라미터를 들어가는 방식입니다. 이전의 최근접아웃은 파라미터 기반이 아니었습니다.  f(x,W) x는 이미지에..

반응형