혼동행렬(confusion matrix)과 모델을 평가하는 방법인 특이도, 민감도, 재현율, 정확도, 정밀도를 정리했습니다. 2021. 12. 9 최초작성2022. 2. 3 2024. 3. 10 혼동행렬(confusion matrix) 내용 추가2024. 3. 112024. 3. 132024. 3. 20본 포스팅에서 다루는 모델 평가 방법을 계산하려면 우선 아래 표에 있는 TP, FP, TN, FN - 4가지에 해당되는 개수를 각각 구해야 합니다. 4가지 경우는 다음 두가지를 기준으로 합니다. Positive는 양성으로 판정을 의미, Negative는 음성으로 판정을 의미. True는 판정이 옳았음을 의미, False는 판정이 틀렸음을 의미.혼동행렬에서 표시하는 다음 구조에 맞도록 표를 ..
Fine-tuning은 대량의 데이터셋을 사용하여 사전 학습된 모델을 새로운 데이터셋에 대해 추가적으로 학습시키는 과정을 의미합니다. 이 방법은 전이학습(transfer learning)의 한 형태로 볼 수 있으며, 사전 학습을 통해 얻은 것을 새로운 작업을 학습시키는데 활용하는 것을 목표로 합니다. Fine-tuning에서 사전 학습된 모델의 가중치를 초기값으로 사용합니다. 파인 튜닝을 하게되면 모델의 첫부분에 있는 레이어들은 보통 일반적인 특징(예: 이미지의 엣지나 텍스처와 같은 저수준 특징)을 인식하는 데 중ㅁ점을 둔다면, 뒷부분 레이어들은 새로운 데이터셋의 특화된 정보와 고수준의 특징을 학습하게 됩니다. 대량의 데이터셋에서 사전 학습된 모델을 새로운 데이터셋에 대해 Fine-tuning하는 방식의..
LoRA 개념을 간단히 간단히 정리했습니다. 2024. 2. 4 최초작성 2024. 2. 8 그림 추가 2024. 2. 22 내용 보충 대규모 언어 모델(LLM)은 방대한 양의 데이터 세트에 대한 광범위한 학습을 진행합니다. 하지만 이렇게 학습된 지식은 일반화된 지식이어서 높은 정확도가 요구되는 특정 분야의 작업에는 충분하지 않을 수 있습니다. 다행인 것은 특정 분야의 작업을 위해 학습시킬때 처음부터 할 필요가 없습니다. 미세 조정(파인 튜닝)을 통해 기존의 학습된 가중치를 조정함으로써 모델을 특정 작업에 맞게 최적화할 수 있습니다. 하지만 모델이 큰 경우엔 노트북에서 사용되는 GPU에서는 미세 조정이 어려운 작업입니다. 이것을 가능하게 해주는 것이 LoRA입니다. LoRA의 핵심 아이디어는 모델의 가중..
기대값 개념에 대해 설명합니다. 기대값 개념에 대해 설명합니다. ChatGPT와 대화한 내용을 기반으로 작성했습니다. 2023. 11. 5 최초작성 기대값을 이해하려면, 먼저 "확률"을 이해해야 합니다. 확률은 어떤 일이 일어날 가능성을 수치로 나타낸 것입니다. 예를 들어, 주사위를 던지면 1부터 6까지의 숫자 중 하나가 나올 확률은 모두 같아서 1/6입니다. 게임에서 이기면 사탕 5개를, 지면 사탕을 1개 받는다고 해봅시다. 게임에 참여하는 사람들은 모두 같은 실력이라고 가정하면, 이길 확률과 질 확률은 1/2, 즉 50%가 됩니다. 게임을 한 번 할 때 얼마나 많은 사탕을 받을지 기대하는 것이 기대값입니다. 기대값을 계산하려면 이길 때 사탕 5개를 받을 확률(1/2)과 질 때 사탕 1개를 받을 확률(..
스택오버플로우에서 찾은 내용을 기반으로 신경망에서 편향의 역할을 정리해봤습니다. 출처 - https://stackoverflow.com/questions/2480650/what-is-the-role-of-the-bias-in-neural-networks 2022. 3. 9 - 최초작성 먼저 편향이 없는 입력과 출력이 하나인 신경망을 고려해봅니다. 입력 x에 가중치 w0을 곱한 결과를 활성화 함수의 입력으로 사용합니다. 활성화 함수의 성질에 따라 결정되는 출력이 신경망의 출력이 됩니다. 여기에선 활성화함수로 시그모이드(sigmoid) 함수를 사용합니다. y = sigmoid(x * w0) 아래 그림은 가중치 w0 값을 변화시키며 입력 x 에 대한 신경망의 출력 y를 보여줍니다. 활성화 함수로 시그모이드를 ..
정규화(Normalization), 표준화(standardization), 이상치(outlier) 제거를 구현해본 코드입니다. 2021. 9. 17 - 최초작성 2022. 4. 15 졍규화는 값을 0 ~ 1 사이의 범위로 바꾸는 것이고, 표준화는 평균이 0, 표준편차는 1 인 표준정규분포(standard normal distribution)로 바꾸는 것입니다. 표준화의 경우 값의 범위가 정해지지 않습니다. 아래 링크에 따르면 데이터가 정규분포를 따르는 경우에는 표준화, 정규분포를 따르지 않는 경우에는 정규화를 하는 것이 좋다고 합니다. ( 참고 - https://www.analyticsvidhya.com/blog/2020/04/feature-scaling-machine-learning-normalizat..
XGBoost 관련 개념을 정리한 문서입니다. 논문을 보고 진행했어야 했는데 인터넷 자료를 바탕으로 작성하게 되었네요. 수식은 이해안되는 부분이 아직은 많아서 제외시켰습니다. 추후 논문을 확인해볼 생각입니다. 2022. 2. 22 최초작성 앙상블(Ensemble) 앙상블(Ensemble)은 여러 개의 모델을 사용해서 각각의 예측 결과를 만들고 그 예측 결과를 기반으로 최종 예측결과를 결정하는 방법입니다. 대표적인 예로 배깅(Bagging)과 부스팅(Boosting)이 있습니다. 베깅(Bagging) Bagging은 분할정복(divide and conquer and combine)과 같은 것입니다. 먼저 전체 훈련 데이터 세트를 여러개의 작은 샘플 훈련 데이터 세트로 나눕니다. 각각의 샘플 훈련데이터셋 별..
난수 생성시 시드를 사용하는 이유에 대해 알아봅니다. 2023. 8. 27 최초작성 난수를 생성시 동일한 시드를 사용하면 동일한 난수를 얻게 됩니다. 예를 들어 np.random.rand()를 사용하여 난수를 생성시키는 경우를 살펴보겠습니다. np.random.seed를 사용하여 동일한 시드 123을 사용한 경우에는 np.random.rand()를 사용하여 난수 2개를 연속해서 생성시 똑같은 값이 출력되는 것을 볼 수 있습니다. Python 인터프리터를 실행하여 테스트해보겠습니다. webnautes@webnautesui-MacBookAir ~ % python Python 3.9.13 (main, May 24 2022, 21:13:51) [Clang 13.1.6 (clang-1316.0.21.2)] on ..
분산과 표준 편차 차이를 정리했습니다. 오류가 있을 수 있습니다. 2022. 02. 06 최초작성 어떤 하나의 통계적 관찰 대상이 되는 집단전체를 모집단이라 하고, 그 부분집단을 표본이라고 한다. https://ko.wikipedia.org/wiki/모집단 분산을 구할때 모집단과 표본(sample) 중 어느 쪽을 대상으로 하느냐에 따라 계산 방법에 차이가 있습니다. 우선은 집단 전체를 의미하는 모집단이라고 가정하고 진행한 후, 포스트 마지막에서 모집단의 부분집단인 표본(sample)인 경우에 달라지는 부분을 설명합니다. 모집단 또는 표본에 포함된 대상을 원소라고 하겠습니다. 원소 대신 샘플이라고 사용하는 경우가 있는데 이러면 표본(sample)과 혼동이 될 우려가 있기 때문입니다. 분산(Variance)..