IT 프로그래밍/AI 29

다중분류 이진분류 요약

출력 차원을 늘려야 하는 이유이진 분류에서는 예를 들어 강아지 = 1, 고양이 = 0처럼 단일 출력 노드로도 충분합니다. 그러나 이렇게 단일 출력으로 분류하게 되면, 중간값(예: 0.5)처럼 애매한 결과가 나와 오류가 발생할 수 있습니다. 이를 방지하고 더 복잡한 다중 분류 문제를 해결하기 위해 출력 차원을 늘리는 방식, 즉 출력 노드를 클래스 수만큼 구성하는 방식을 사용합니다. 예를 들어, 분류 대상이 3종류라면 다음과 같이 표현합니다:강아지 → [1,0,0]고양이 → [0,1,0]토끼 → [0,0,1]이렇게 하면 각 클래스에 해당하는 확률 분포를 명확히 표현할 수 있습니다. Softmax: 다중 분류에서의 확률 출력다중 분류에서는 출력이 확률 분포의 형태를 띄어야 하므로 다음 조건을 만족해야 합니다:..

인공신경망은 MLE 기계

인공신경망(Artificial Neural Network, ANN)은 결국 하나의 함수로 볼 수 있습니다. 이 함수 fff는 다양한 weight와 bias, 즉 파라미터들로 구성된 함수이며, 입력 x가 주어졌을 때 출력은 f(x)가 됩니다. 즉, 신경망은 파라미터화된(parameterized) 함수로서, 주어진 입력에 대해 적절한 출력을 내는 함수 f_w(x)를 학습합니다. 예를 들어 수학에서 x→f→x2처럼, 어떤 입력 x가 함수 f를 통해 f(x)로 변환되는 것처럼, 신경망도 입력 x를 받아 출력합니다. 이때 출력된 fw​(x)는 정답 레이블 y에 대한 확률 분포, 즉 조건부 확률 분포 p(y∣fw(x))을 따르게 됩니다. 이 확률 분포를 어떻게 모델링하느냐에 따라 신경망의 출력 해석이 달라집니다. ..

[Loss function] MSE vs log-likelihood

확률 곱셈의 수치적 불안정성과 로그 변환의 필요성if 강아지사진 q를 최대화해야else if 고양이사진 q를 최소화해야확률 q를 최소화하는 것은, 수학적으로 1 - q를 최대화하는 것과 같습니다.이 개념은 베르누이 분포의 확률 표현인q^p * (1 - q)^(1 - p)을 최대화하는 것과도 같습니다. 이 수식은 p가 1일 때는 q, p가 0일 때는 1 - q를 취하는 구조로, 주어진 정답에 따라 올바른 확률을 선택하여 곱하는 방식입니다. 이는 독립시행에서 전체 확률을 계산하기 위해 각 시행의 확률을 곱하는 방식과 같습니다. 예를 들어, 어떤 모델이 하나의 데이터에서 정답을 0.9 확률로 맞춘다고 하면, 이를 100번 반복하면 전체 확률은 0.9^100 ≈ 0.000026이 됩니다. 이처럼 0과 1 사이의..

[딥러닝] 기본적 개념 정리

Training : 파라미터 학습을 위한 데이터 Test : 최종적으로 학습된 모델 테스트용 데이터Validation : 하이퍼파라미터 선택을 위한 데이터 Test 데이터는 학습 때 사용하면안됨, 처으보는 data에 대해서 어떻게 잘하는 지 봐야 하기 떄문 Epoch을 축으로 x 봤을 때 loss는 계속 내려갈 것입니다. 내려가는 것이 무조건 좋은 상황은 아닌 것이 머신이 반복학습을 많이 하면 외워서 풀면서 원리를 잊어버리게 될 수 있기 때문입니다.  그래서 테스트에 대한 에러를 생각해본다면 내려가다가 다시 올라갈 수도 있다는 것입니다. 그래서 존재하는 것이 모의적으로 테스트를 해보기 위한 것이 Validation 데이터입니다. validation 데이터 가장 잘할 때 학습을 멈추면 얼추 맞습니다.   ..

[Pytorch] BMM, Layer, Activation Function

Batch Matrix Multiplication(BMM)같은 개수의 행렬 쌍들에 대해 병렬로 행렬 곱 실행(N,n,h)X(N,h,m) = (N,n,m) Linear LayerLinear Layer란?Input과 Output을 weight로 연결하는 Layer로 각 원소들을 모두 연결하는 형태이기 때문에 Fully Connected Layer라고도 부름  Activation FunctionLinear Layer의 결과를 다음 layer에 전달할 때 사용하는 함수로, 비선형 함수를 사용 sigmoid, tanh, ReLU 등이 있음 Softmax 함수activation function으로도 쓸 수 있고 자주 사용하는 함수 중 하나입니다. 결과 classification을 할 때 output을 뽑을 때 확률..

파이토치의 구성요소

파이토치의 구성요소-torch : 메인 네임스페이스-torch.autograd : 자동 미분 기능 제공 라이브러리-torch.nn : 신경망 구축 데이터 구조 및 레이어-torch.multiprocessing : 병렬처리 기능 제공-torch.optim : SGD 중심 파라미터 최적화 알고리즘 제공-torch.utils : 유틸리티 기능 제공-torch.onnx : 서로 다른 프레임워크 간 모델 공유 Tensors데이터 표현을 위한 기본 구조로 텐서 사용텐서는 데이터를 담기 위한 컨테이너로서 일반적으로 수치형 데이터 저장넘파이의 ndarry 생각하면 됨GPU 사용 연산 가속 가능00 Tensor (Scalar) 1D Tensor(Vector) : Rank:1 Shape(3,) 2D Tensor(Matri..

딥러닝 연구의 초점

직관을 바탕으로 아이디어를 전개해야 한다. 사전 정보를 적절히 심어주는 것이 중요하다.  이를 통해 정보의 흐름을 원활하게 만들고 학습을 효율적으로 유도할 수 있다. 정보를 어떻게 엮을 것인가?CNN (Convolutional Neural Network): 위치가 가까운 픽셀들을 우선적으로 고려하고, 멀리 있는 정보는 정제하여 조합하는 방식으로 패턴을 학습한다.트랜스포머 (Transformer): 단어들 간의 관계 정보를 파악하여 번역과 같은 자연어 처리 작업을 수행한다. Skip Connection이란?불필요한 연산 과정을 생략하고, 중요한 정보만 바로 전달하는 구조를 의미한다. 수식적으로 표현하면, 입력값을 , 함수 를 적용한 결과를 라 할 때, 기존 네트워크에서는 형태로 연산이 이루어진다. 하지만..

RNN이 무엇인가? 그리고 Transformer로 대체된 이유

RNN 연속적인 데이터?자연어 처리를 할 때, 컴퓨터가 문자를 이해할 수 있도록 단어를 숫자로 변환해야 합니다. 나는 [100] 강사 [010] 입니다. [001]이러한 방식으로 단어를 숫자로 표현한 뒤, 신경망에 입력하게 됩니다. RNN의 개념RNN(Recurrent Neural Network)은 순차적인 데이터를 다룰 때 효과적인 신경망입니다. 핵심 개념은 이전 정보와 현재 정보를 연결하여 학습하는 것입니다.RNN은 순차적으로 데이터를 처리하며, 이전 시점의 정보를 현재 시점에 반영하는 구조를 가지고 있습니다."Recurrent"는 되풀이되는 특징을 의미합니다.입력 데이터(X1, X2, X3)를 순차적으로 처리하며, 이를 기반으로 최종 결과(H3)를 생성할 수 있습니다. RNN으로 얻는 효과순차적으로..

CNN motivation

Overfitting의 단점은 모델이 훈련 데이터에 너무 과도하게 적합되어, 새로운 데이터에 대한 일반화 능력이 떨어진다는 점입니다. 예를 들어, 배경에 점만 찍어놓고도 모델이 이를 "아니라고" 예측한다면, 이는 과도한 학습으로 인해 발생한 문제입니다. 딥러닝에서 중요한 것은 학습을 계속해서 높이는 것이 아니라, 중간 지점을 찾아 모델이 일반화될 수 있도록 하는 것입니다. CNN과 인간의 방식:인간이 이미지를 인식할 때 뇌의 일부만 활성화된다는 사실을 반영합니다.위치별 특징을 추출하여, 위치 정보를 유지한 채로 특징 패턴을 찾습니다.(누락된 부분이 있으니, 적절한 내용이 필요할 수 있습니다.) Fully Connected Layer에서는 이미지의 각 픽셀을 세세하게 분석해야 하므로, 모든 픽셀을 서로 연..

[컴퓨터 네트워크] UDP

UDP 장점커넥션의 연결이 필요 없음커넥션 상태에 대해서 유지할 필요 없어서 단순헤더의 크기도 작음혼잡 제어를 하지 않음(트래픽이 많으면 속도 줄이는 작업 X)UDP sender의 동작 과정 송신 측 UDP 동작응용 계층에서 전달된 메시지(SMMP msg)를 UDP 프로토콜이 처리.UDP는 메시지에 UDP 헤더를 추가하여 UDP Segment를 생성.생성된 UDP Segment는 네트워크 계층으로 전달되어 목적지로 전송.수신 측 UDP 동작네트워크 계층에서 전달된 UDP Segment를 수신.수신된 UDP Segment는 전송 계층(UDP)으로 전달됨.UDP는 헤더를 확인하여 포트 번호 등 필요한 작업 수행 (e.g., 적절한 응용프로그램으로 전달).UDP 헤더를 제거한 뒤, 응용 계층 메시지를 추출.최..