-
여러 인공지능 관련 정의공부/AI 2024. 1. 21. 19:21728x90
- Gradient Descent
- 손실함수를 최소화하는 최적의 파라미터를 찾고 모델을 훈련
- 파라미터 초기화=>손실함수 계산(최소화가 되야하므로)=>미분계산(손실함수를 0에 가깝게 만듦)=>파라미터 업데이트
- 여러 개의 변수를 가진 함수(loss) 각각에 대한 편미분을 쌓은 것을 Gradient라고 하고, 수학적으로 가장 가파른 방향으로 향하는 데 Gradient를 구한 후, loss를 줄이는 Gradient의 반대방향으로 나아가는 것이 Gradient Descent
- loss surface?
- 모델의 손실함수가 모델의 파라미터에 따라 어떻게 변하는 지를 나타내는 그래픽 표현
- loss surface를 시각화하면 다양한 파라미터 값에 따라 손실 함수의 형태가 어떻게 변하는 지 확인 가능
- loss surface를 통해 모델이 최적의 파라미터를 찾기 위해 어떤 방향으로 이동해야하는지, 어떤 조합이 좋은 모델을 나타내는 지 등을 시각적으로 확인 가능
- loss surface는 gradient descent나 최적화 알고리즘이 어떻게 작동하는 지 이해할 수 있게 해줌
- Attention
- 인공 신경망에서 특정 부분에 더 집중하도록 하는 메커니즘
- 특정 위치나 특성에 더 중요한 가중치를 부여하여 모델이 해당 부분에 더 집중할 수 있도록 해줌
- 기존의 고정된 가중치를 사용하는 전통적인 방법과 달리 입력 데이터의 각 부분에 동적으로 가중치 할당
- 쿼리 : 어떤 부분에 주의를 기울일 것인지 결정하는 정보를 가진 벡터
- 키 : 입력 시퀀스의 각 부분에 대한 정보를 가진 벡터
- 값 입력 시퀀스의 각 부분에 대한 출력을 나타내는 벡터
- Transformer
- 자연어 처리 중 특히, 번역에 특화된 모델
- Attention is All you Need(https://arxiv.org/abs/1706.03762)라는 논문에서 제안되었고 attention이라는 메커니즘을 적극적으로 활용한 모델
- 이전의 문제들?(RNN)
- Decorder가 마지막 문제만 열심히 보는 문제
- RNN의 vanishing gradient
- 흐려지는 정보
- =>attention으로 해결
- 어텐션 메커니즘 : 입력 시퀀스의 각 요소간의 관계 학습, 전체 정보 캡처
- 병렬 처리 가능 : 시퀀스 내 각 요소를 병렬로 처리할 수 있어 속도 향상
- 스택된 어텐션 레이어 : 여러 개의 어텐션 레이어를 쌓아 모델의 복잡성 증가
- 포지셔널 인코딩 : 시퀀스 데이터의 순서정보를 잃지 않도록
- collaborative filtering
- 사용자의 행동과 선호도를 기반으로 추천을 제공하는 추천 시스템
- 사용자 간의 유사성이나 아이템 간의 유사성을 분석하여 추천 생성
- 사용자 행동 데이터를 기반으로 모델 학습
- few-shot learning
- 매우 적은 양의 학습 데이터를 기반으로 모델을 훈련시키는 작업
- 새로운 클래스나 작업에 대한 학습이 필요한 경우 유용
- zero-shot learning
- 학습된 클래스 집합에 없는 새로운 클래스에 대해 모델이 예측할 수 있도록 이전에 본 적 없는 클래스에 대한 지식을 모델은 가져야함
- 클래스 간의 관계나 속성을 학습하여 새로운 클래스에 대한 예측 수행
- =>새로운 클래스 등장/확장 가능한 모델 구축
- Transfer learning
- 한 작업에서 학습된 지식을 다른 관련 작업에 전이하여 모델의 일반화 기능을 향상
- 한 작업에서 학습된 특징, 지식이 다른 작업에도 유용
- 데이터가 부족하거나, 특정 작업에 대한 학습이 어려운 경우 유용
- Transfer learning 종류
- 표준 전이 학습 : pre-trained모델을 가져와 새로운 작업에 맞게 수정
- 도메인 적대적 학습 : 동일한 작업이지만 서로 다른 도메인에서 수집된 데이터셋을 사용하는 경우 유용
- 재학습(fine-tuning) : 특정 작업에 대해 pre-trained 모델을 가져와 모델 일부를 변경하여 새로운 작업에 재학습
- Federated learning(연합학습)
- 분산 학습 방법, 중앙 서버에서 데이터를 집중적으로 수집하지 않고, 디바이스, 클라이언트에서 학습을 수행
- 사용자의 데이터가 장치에 남아 있으면서 중앙 서버로 모델 업데이트를 전송하여 모델 전체적으로 개선
- 문제 : 통신 부하와 대역폭/비동일한 데이터 분포/보안과 개인정보 보호/클라이언트의 신뢰성/병목 현상과 지연/ 모델 합의와 평가
- SVD(특이값 분해)
- 행렬을 세 개의 행렬 곱으로 분해하는 기술
- 세 개의 행렬?
- m*m크기의 직교행렬
- m*n크기의 대각행렬
- n*n크기의 직교 행렬의 전치
- =>차원축소, 이미지 압축, 노이즈 제거 등에 사용됨
- 대각 행렬의 대각 성분들 = 특이값, 원본 행렬의 주성분, 원래 행렬을 근사가능 => 상대적으로 중요하지 않은 정보를 버리고, 데이터의 주요 특성만 보존
- 중심극한정리
- 동일한 확률분포를 가진 독립적인 확률 변수들의 합이 근사적으로 정규 분포를 따름
- n이 충분히 크다면 확률 변수들의 합은 근사적으로 정규분포를 따름, 평균이 n배이고, 분사이 n배인 정규분포로 근사
- Random Sample을 여러개 뽑아 평균을 내면 그 표본 평균은 sample의 개수가 많으면 많을수록 가우시안 분포를 따르게 됨
- independently/identically/distribute로 이루어진 Random Sample
- ex)통계적 추론과 가설 검정, 신뢰구간 구성, 머신러닝에서의 샘플링, 통계적 시뮬레이션, 확률론적 모델링, 자연어 처리와 통계기반 모델
- 로지스틱 회귀
- 이진 분류를 위한 방법, logit을 linear regressiong함으로써 이진 분류를 하는 것
- logit이란 log(odds)로, odds는 승산을 얘기하고 이길 확률이 q라고 하면 q/(1-q)를 이야기함 여기에 log를 취한 것이 logit
- 학습은 어떻게 이루어지는 것인지?
- negative log likelihood, Binary Cross Entropy
- 학습은 해당 loss를 weight에 대해 편미분한 gradient를 구해서 그 반대 방향에 learning rate를 곱해서 함
- 여기서 반대 방향을 하는 이유는 gradient는 가장 가파른 방향으로 이동하기 때문에 반대 방향으로 감으로써 loss를 줄일 수 있음
- SGD, Adam같은 것도 사용가능
- l2-regularization, l1-regularization
- regularization이란 과적합을 방지하기 위한 방법 중 하나
- 기존의 loss에서 weight의 크기도 같이 고려
- weight+l2 norm, weight+l1 norm을 더해서 고려
- weight의 크기를 loss에 반영했더니 과적합을 효과적으로 방지 가능
- l2 norm은 ^2=>weight가 크기에 비례=>wieght가 크면 더 고려, 작으면 덜 고려하는 방식, 노드를 골고루 사용
- l1 norm은 ||=>똑같은 크기로 wieght를 줄이게 됨=>기울기가 일정, 몇 개의 connection을 없앰
- l2는 prior를 가우시안, l1은 prior를 라플라시안 을 가짐
- overfitting 방지 방법
- 모델 복잡성 낮춤
- data augmentation
- validation data 기준, 성능 최고치 때 저장
- Dropout
- Drop Connect
- Regularization
- 최적화
- 어떤 함수가 있을 때 최대화, 최소화하는 파라미터를 찾기 위해 사용
- 특히, Deep learning에선 weight, bias값을 알아내기 위해 사용=>loss값이 최소화되는 곳을 찾기
- ex)Gradient Descent, SGD, Adam, Minibatch 등의 방법이 있음
- 데이터가 적을 때 해결 방법?
- 비용 투자
- data augmentation
- 자기지도학습(다른 문제를 새롭게 정의한 문제에 대한 정답으로 새로 정의하여 먼저 풂)
- ViT
- 비전 트랜스포머의 약자로 트랜스포머를 vision에도 적용한 것
- 이미지를 패치로 쪼갰을 때, 각 패치를 임베딩한다고 생각하면 이미지 자체는 커다란 문장으로 생각할 수 있음=>관계 파악 가능
- Rank
- 어떤 행렬에 대해 column space의 차원의 수를 나타내는 것
- column space란 그 행렬의 컬럼들이 span하는 space
- span은 linear combination으로 나타낼 수 있는 벡터의 영역
- column space의 dimension = row space의 dimension
- 행렬이 가지는 independent한 column의 수
- Vector Space
- 8개의 공리를 만족하는 두 개의 operation(vector edition, scalar multiflacation)이 정의되는 그러한 셋
- 역행렬을 구하는 방법
- 가우스 조던 소거법 사용
- 이 때의 시간 복잡도는 O(n^2.xxxx)~O(n^3)
- 고유값과 고유벡터
- 어떤 행렬 A와 열벡터 x를 곱하는 행위를 선형변환한 행위
- 선형변환 이후 방향이 변하지 않는 벡터들=>고유벡터
- 크기가 변하는 정도=>고유값
- PCA(주성분 분석)
- 데이터의 분포에 대해서 가장 잘 설명하는 축을 찾고 그 축으로 데이터를 정사영내림으로써 차원축소를 하는 방법 중 하나
- Normal Distribution
- 정규 분포(가우시안 분포), 평균이 μ인 분포, μσ² 하나로 정해지는 분포
- 종모양으로 평균에 대해 대칭이며, 평균과 분산으로 pdf가 정해짐
- 베이지안 룰
- 사후 확률을 구하기 위해 사용되는 공식
- likelihood*사전확률=사후확률
- 벡터의 내적
- 닮은 정도, 크기를 고려할 수 있음
- Transfomer에서 사용됨
- Similar matrix
- B=P^-1*A*P, eigen value값 일치
- 1*1 convolution?
- feature map 간의 weighted sum
- 어떤 feature map이 더 중요한 지 덜 중요한지를 학습시켜 특징 맵을 얻음
- Conditional pds
- 어떤 random variable이 주어져 있을 때, 다른 random variable에 대한 분포를 추측하는 것
- Independence
- x,y 2개의 random variable이 있을 때 P(x,y)=P(x)P(y)
'공부 > AI' 카테고리의 다른 글
transformer (0) 2025.02.10 프롬프트 엔지니어링 가이드 (1) 2024.03.28 모두팝-SAM과 친해지기 (2) 2023.10.17 Numpy 정리 (0) 2023.03.07 object detection 성능지표 (0) 2021.09.25 - Gradient Descent