AI/Lecture notes

    강의 노트: LoRa로 빠르게 나만의 모델을 만들어보자

    강의 노트: LoRa로 빠르게 나만의 모델을 만들어보자

    본 정리글은 "[챗GPT 러닝데이 | 챗GPT말고 LLM] LoRa로 빠르게 나만의 모델을 만들어보자 - 김용담"을 보고 작성하였습니다. LoRa가 등장한 배경 Large-Scale Pretrained Model 대용량 데이터와 대규모 파라미터로 학습된 모델들 GPT-3 (175B) LSPM limitation Over-parametrized model이다 보통 pre-trained model을 fine-tuning해서 donwstream task를 푸는데, 필요한 정보는 일부임 기존 연구들을 통해서 필요한 정보는 'intrinsic dimension'에 있을 것이라고 판단했음 이러한 intrinsic dimension을 찾기 위해 'Low-Rank space'로 변환하는 방식을 사용하면 더 적은 파라미..

    [ML lec 08] Deep Neural Nets for Everyone

    우리 인류의 궁극적인 꿈이라고 하는 것이 바로 우리를 대신해서 골치아픈 문제를 생각해주는 기계를 만들자라고 할 수 있습니다. 따라서 우리의 뇌와 같은 모습을 만들고자했고, 뇌에 대해서 공부를 하게되었습니다. 뇌를 공부하였더니, 굉장히 복잡하게 연결되있어서 놀랐고 또 연결된 부분부분들을 자세하게 봤더니 뉴런이라고 불리는 유닛이 너무나 단순하게 동작이 되었습니다. 봤더니 어떤 인풋이 있고, 길이에 따라 신호의 양이 달라졌습니다. 따라서 X*W으로 둘 수 있고. 이 것들이 다 합쳐지고, 어떤 bias가 더해져서 그것이 그 다음으로 전달되더라... 이 다 모여있는 값이 어떤 값 이상이 되면 활성화되고, 그렇지 않으면 활성화가 되지 않습니다. 이런 것에 영감을 받아서, 수학적으로 만들어낸 모델이 뉴럴 넽입니다. ..

    [ML lec 07] Application & Tips

    이번 포스트에서는 머신러닝 알고리즘을 실제로 사용하는데 있어서, 몇가지 팁을 알려드리겠습니다. 크게 러닝 레이트를 조정하는 방법과 전처리 방법 그리고 오버피팅을 방지하는 방법에 대해서 이야기하겠습니다. 우리가 cost function을 정의하고 그 cost function을 최소화하는 것에 Gradient descent 알고리즘을 사용해왔습니다. Gradient descent 알고리즘에서 우리는 Learning rate를 지정해주게 되는데요, 이 때 Learning rate를 잘 정하는 것이 중요합니다. Learning rate란 그래프를 내려가는 것의 step과 같습니다. 만약 step이 너무 크다면, 그래프 바깥으로 나가버리거나, 계속 주위를 맴돌게 되는 상황이 만들어질 수도 있습니다. 이것을 ove..

    [ML lec 06] Softmax Regression

    [ML lec 06] Softmax Regression

    이번에는 여러개의 Class가 있을 때, 그것을 예측하는 Multinomial Classification 중에서도 가장 많이 사용되는 Softmax Classification을 알아보겠습니다. 지난번 포스트에서 Logistic regression classification이라는 것에 대해서 알아봤습니다. 자세한 내용은 지난번 포스트를 참고해주세요. 아무튼 이 Logistic regression classification은 Binary classification에 사용됩니다. 기본적으로 서로 다른 데이터들을 구분하는 것인데, 아래와 같이 생각할 수 있습니다. 이러한 아이디어를 Multinomial classification에 적용을 시킬수 있습니다. 아래와 같은 데이터가 있다고 가정합니다. 여기에서 Bin..

    [ML lec 05] Logistic Classification

    [ML lec 05] Logistic Classification

    이번 포스트는 Logistic Classification에 대해서 다루도록 하겠습니다. 본론에 들어가기 앞서, 이전의 Linear Regression에 대해서 Remind해보겠습니다. Linear regression에서는 가설을 H(x) = WX + b 로 세웠고, 여기에 대해서 Cost function과 이 Cost를 minimize하기 위해 Gradient decent라는 optimizer를 사용하였습니다. 이 것 세가지만 있으면 Linear Regression을 잘 이해할 수 있고, 구현할 수 있습니다. Classification도 이것과 굉장히 유사합니다. Classification이 다른 점은 이전의 Regression이 어떤 numeric한 변수를 예측하는 것이었다면, Classificatio..

    [ML lec 04] multi-variable linear regression (*new)

    [ML lec 04] multi-variable linear regression (*new)

    이번 포스트에서는 지난번 Linear regression에 이어서, 하나의 변수가 아니라 여러개의 multi-varaible을 사용하는 방법에 대해서 포스트하겠습니다. 우선 포스트를 시작하기 전에 지난번에 올렸던 내용을 복습해보겠습니다. Linear regression을 설계하기 위해선 세가지가 필요합니다. 우선 Hypothesis가 있는데요, Linear regression에서는 H(x) = Wx + b로 가설을 세우게됩니다. 다음으로는 이 가설이 얼마나 맞는지에 대해서 판단하는 Cost function이 필요합니다. 마지막으로는 이 Cost를 최적화하는 Gradient Descent Algorithm이 필요합니다. 여기까지에 대해서 완벽히 이해하셨으면, 이번 포스트 내용에 대한 기초적인 이해는 충분하..

    [ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명

    [ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명

    이번 포스트에서는 지난 포스트에서 말했던, cost function을 어떻게 최소화해서 최종적으로 Linear Regression 학습을 마치는 지에 대해서 다루겠습니다. 지난 포스트에서처럼 우리의 Hypothesis는 다음과 같습니다. 그럼 x = 1, 2, 3, y = 1, 2, 3인 데이터가 있다고 생각하고, cost를 구해봅시다. 우선 H(x) = Wx + b 에서 b는 없다고 생각하고, 계산을 해봅니다. 계산을 해보면 다음과 같이 나오게 됩니다. 각각은 W = 1, cost(W) = 0W = 0, cost(W) = 4.67W = 2, cost(W) = 4.67 이 되어집니다. 이 때 그래프는 다음과 같이 그려지게 됩니다. 이 때, 우리가 구해야 하는 것은 Cost의 최솟값입니다. 따라서 이 그래..

    [ML lec 02] Linear Regression

    [ML lec 02] Linear Regression

    이론 우리가 Supervised Learning을 할 때에, 학생이 몇시간 정도 공부를 했더니 얼마정도의 성적을 받았다는 데이터를 학습을 하게됩니다. 여기서 우리가 예측을 하고자하는 최종적인 목표가 0~100의 범위를 가지는 값입니다. 이런 종류의 학습을 Supervised Learning 중에서도 regression이라고 합니다. 설명을 간단히 하기 위해서, 데이터셋을 다음과 같이 간단하게 두어 보겠습니다. 이 데이터를 그래프로 그려보면 오른쪽 그래프와 같이 표현됩니다. 그래서 우리가 이 regression 모델을 학습한다는 것은 어떠한 하나의 가설을 세울 필요가 있습니다. "어떤 Linear한 모델이 우리 데이터에 맞을 것이다" 라는 가설 하에 생성된 모델이 바로 Linear regression입니다..

    [ML lec 01] 기본적인 머신러닝의 용어와 개념 설명

    오늘은 - 머신러닝이란 무엇인가?- 러닝은 무엇인가?- regresion이 무엇인가?- classification이 무엇인가? 에 대해서 알아보도록 하겠습니다. 머신러닝이라는 것은 일종의 소프트웨어입니다. 우리가 많이 사용하는 앱 같은 것을 보면, 입력을 기반으로 어떤 데이터를 보여주고 하는 프로그램인데, 이런 것들을 explicit program이라고 합니다. explicit program은 개발자들이 이런 환경에서 이렇게 반응하고 저런 환경에서 저렇게 반응하라고 만들어놓은 프로그램입니다. 이런 explicit program에서는 한계점이 있습니다. 예를 들어, 스팸 메일 필터같은 경우 엄청나게 많은 규칙들이 생겨날 수 있는 상황이 있죠. 이런 상황을 해결하기 위해, Arthur Samuel이라는 사람..