🐾 Rudi Park
누군가 저한테 사막에서도 살아남을 사람이라던데, 그건 사실일까요?
- 🪴 한 걸음, 또 한 걸음 안녕하세요! 이 블로그는 저의 개인적인 생각들과 공부한 내용들을 일부 적어둔 곳입니다! 제 글에 대한 개인적인 생각들 또한 언제든지 환영입니다. 참고로 제 MBTI 는 ENTJ 입니다. 다양한 사람들과 이야기하며 다양한 아이디어들을 이야기 하는 것을 좋아합니다 😄 더보기
최근에 나는 무슨 글을 적었을까...
이 블로그에서 인기 있는 글들은 어떤거야??
- Matplot Color Map 종류 (Cmap) Matplot에는 여러 개의 Color를 섞은 Colormap이 있습니다. 다음 코드로 cmap의 모든 이름들을 가져올 수 있습니다. import matplotlib.cm print(matplotlib.cm.cmap_d.keys()) """ ['Accent', 'Accent_r', 'Blues', 'Blues_r', 'BrBG', 'BrBG_r', 'BuGn', 'BuGn_r', 'BuPu', 'BuPu_r', 'CMRmap', 'CMRmap_r', 'Dark2', 'Dark2_r', 'GnBu', 'GnBu_r', 'Greens', 'Greens_r', 'Greys', 'Greys_r', 'OrRd', 'OrRd_r', 'Oranges', 'Oranges_r', 'PRGn', 'PRGn_r', 'Pai.. 더보기
- AI 대학원 면접 준비 - 전공 질문 리스트 본 질문들은 필자가 KAIST AI 대학원 면접을 준비하면서 만든 질문 리스트입니다. 머신러닝, 확률, 선형대수학과 관련된 질문들로 모두 답해야 하는 것은 아니며, 알고있는 지식의 정도를 확인하는데 도움이 될 것 같습니다. Statistic / Probability 🧐 Central Limit Theorem 이란 무엇인가? 🧐 Central Limit Theorem은 어디에 쓸 수 있는가? 🧐 큰수의 법칙이란? 🧐 확률이랑 통계랑 다른 점은? 🧐 Marginal Distribution이란 무엇인가? 🧐 Conditional Distribution이란 무엇인가? 🧐 Bias란 무엇인가? [Answer Post] 🧐 Biased/Unbiased estimation의 차이는? [Answer Post] 🧐 Bi.. 더보기
- BLEU Score의 소개와 계산하는 방법 (Python) Last Updated on July 23, 2021 Bilingual Evaluation Understudy (BLEU) 딥러닝의 발달로 텍스트를 생성하는 Generative Model은 챗봇, 문서 요약등 다양한 분야에서 사용되고 있습니다. Generated Sentence를 평가하는 방식은 크게 BLEU 방식과 ROUGE 방식이 있습니다. 여기서는 BLEU 와 이를 계산할 파이썬 라이브러리를 소개합니다. (TMI: BLEU 는 블류라고 읽어주시면 됩니다) Generative Model은 주로 Supervised Learning 방식으로 정답이 되는 Reference Sentence가 있습니다. 모델로부터 생성되는 문장을 Generated Sentence 그리고 비교하는 정답을 Reference Se.. 더보기
- State Machine Diagram 에 대한 설명 모든 객체들은 생성부터 삭제되기까지 유한 개의 상태를 지니며 객체의 상태를 표현하기 위해서 사용되는 것이 State Machine Diagram(State Chart) 입니다. 객체의 상태와 전이(상태를 바꾸는 행동)을 나타내기 위해서 SMD에는 두 개의 키워드가 있습니다. State: 객체의 상태 Transition: 객체의 상태를 바꾸는 event State State를 나타내는 방법은 두 가지가 있습니다. 단순히 상태만 나타내는 경우와 상태에 들어가기 전, 후, 중간에 하는 활동을 추가하는 경우입니다. entry/Activity(): Object가 S 상태에 들어왔을 때 Activity()를 실행합니다. exit / Activity(): Object가 S 상태서 나갈 때 Activity()를 실행합.. 더보기
- Windows 11 자판 배열 바꾸기 Windows 11 자판 배열 바꾸기 설정 -> 시간 및 언어 -> 입력 언어(한국어 -> ... 클릭) -> 키보드 추가/제거 더보기
- [Bias 1/3] Machine Learning에서 Bias란 무엇인가? Bias [1]는 Machine Learning에서 필수적인 개념 중 하나 입니다. Bias 는 어느 한쪽으로 치우쳐 있다는 상태를 나타내는 편향이라는 단어를 뜻합니다. 용어가 일상에서 사용될 때는 주로 생각이 치우쳐 있는 것을 나타내는데, Machine Learning에서는 어떤 게 치우쳐 있다는 것을 나타내는 것일까요? 이 포스팅에서는 머신러닝에서 치우쳐있는 편향에 대해서 알아보겠습니다. Machine Learning의 목적 머신러닝은 데이터로부터 패턴을 익히고 관찰하지 못한 새로운 데이터에 대해서 예측하기 위한 모델을 훈련합니다. MNIST, Titanic과 같은 데이터셋은 각각 CNN, XGBoost와 같은 모델로 훈련하고 새로운 문자그림과 승객의 정보가 주어졌을 때, 훈련된 모델로 예측합니다. .. 더보기
- matplotlib의 구조와 rcParams에 대해 알면 나도 plot 고수 📈 Matplot의 구조 📈 데이터를 시각화 하기 위해서 Matplotlib을 자주 사용합니다. 대부분의 사용자들이 세부적인 구조를 알지 못해 디버깅을 하는데 많은 시간을 소요하게 됩니다. 이번 포스팅에서는 matplotlib 의 구조 및 작동원리에 대해서 알아보고 그래프 그리기 고수가 되는 첫걸음을 내딛어 보겠습니다. 코딩을 하다보면 다음 두 가지를 import 하는 경우를 많이 보셨을 겁니다. import matplotlib import matplotlib.pyplot as plt plt.plot() 으로 그래프를 그리면 다음 3 단계를 거치게 됩니다. 1. pyplot을 이용한 명령 2. 객체들의 생성 (Figure, Line, Axes) 3. 그리기 이중 3번째인 그래프를 그리기 위한 모든 것을 담고.. 더보기
- 생성형 언어 모델의 Jailbreak는 막을 수 있을까? (feat. chatGPT) 사람의 언어를 흉내내는 대형언어모델의 성능은 기하급수적으로 높아지고 있다. 인공지능 붐이 일어난지 10년만에 chatGPT모델이 세상을 놀래키는 것을 보면, 앞으로도 생성형 언어 모델은 빠르게 성장할 것이다. 사회적 영향력이 커짐에 따라서 연구자들은 긍정적인 효과보다 부정적인 영향을 걱정하고 있다. 오늘 이야기할 Jailbreak는 언어모델의 부정적 사용의 종류이다. Jailbreak 하기AI모델에게 친구를 왕따시키는 방법을 알려달라고 하자. 그러면 순진한 AI모델은 선악을 구분하지 않고 최대한 정성스럽게 대답해줄 수 있다. 그러나 이러한 부정적인 사용은 AI를 만든 근본적인 목적과 일치하지 않는다. 사람에게, 사회에게 이로운 영향을 끼치기 위해서 AI모델은 대답을 가려서 해야 한다... 더보기
- [Meta-Learning] 1. 메타, 메타러닝이란 뭘까? 메타, 메타러닝이란 뭘까? What is Meta? 메타 라는 용어는 한 단계 더 위에 있는 것을 가리킬 때 사용됩니다. 대표적인 예시로, 데이터에 대한 정보를 나타날 때, 데이터에 대한 데이터인 meta-data가 있고, 생각을 잘하고 있는지 생각한다면, 메타인지라고 부르게 됩니다. Meta-Learning? 머신러닝 분야를 공부하다보면 메타러닝이라는 말이 자주 등장합니다. 아마도 대부분의 사람들은 학습하는 방법을 학습한다는 표현은 많이 들어봤을 거에요. 메타의 뜻에 의하면, 메타러닝이랑 러닝에 대해서 한 단계 더 위에 있는 것을 가리킵니다. 여기서 나타나는 학습을 두 단계로 나눠서, 두 단계의 학습에 대해서 알아보겠습니다. 첫 번째 학습 모델이 학습이라는 것은 주어진 데이터로부터 패턴이나 특징을 찾고.. 더보기
- Invariant 와 Equivariant 를 구분하는 방법 TL;DR Equivariant는 Rotation을 전후로 적용해도 괜찮은 공간들로 한다. Invariant 는 아웃풋이 아무거나 상관없다. (심지어 스칼라도!) Intro 딥러닝을 하다보면, Representation에 대해서invariant 또는 Equivariant 라는 단어를 쓸 때가 있습니다. 이는 의미상 굉장히 비슷하기 때문에 쓰임새를 구분하는 것이 쉽지 않습니다. 의미적으로 보면, Invariant : 불변, Equivariant : 동일로 해석할 수 있는데, 의미적으로 두 개를 기억하는 것은 아무런 도움이 되지 않으며, 수식을 외운다고 할지라도 단순히 정의을 기억하는 것 이상의 정보를 주진 않습니다. 그래서 Invariant 와 Equivariant 의 차이를 제대로 보여주는 함수의 인풋과.. 더보기
- [Bias 2/3] Biased Estimator, Unbiased Estimator란 무엇인가? Biased Estimator and Unbiased Estimator Bias [1]는 추정된 파라미터가 실제 파라미터와 다른 정도를 나타내는 스칼라 값입니다. 모델의 파라미터 $\theta$를 추정했을 때, Bias 의 값이 크다면, 추정된 파라미터가 실제 파라미터와는 상당이 멀리 떨어져있음을 나타냅니다. 그렇다면 Bias 값이 작은 경우가 실제 파라미터와 값이 비슷할 것이고 대체적으로 Bias값이 0인 경우가 좋습니다. [2] Bias 가 낮은 게 좋을 수도 있고, 높은 게 좋을 수도 있다. Bias 는 무조건 낮은 게 좋은 것 같은데, 컷을 때 좋은 점이 있다는 게 잘 믿기지 않습니다. 여기에 한 가지 연결고리가 필요합니다. Bias의 정의를 다시 살펴보겠습니다. $$ E(\hat\theta) =.. 더보기
- [Math] Vector Norm의 종류와 중요성 벡터는 세상의 다양한 값들을 나타내는데 유용하게 사용됩니다. 단순하게 나타낼뿐만 아니라 값들의 연관성을 파악하는데도 유용하게 사용될 수 있는데, Norm은 그러한 연관성을 나타내는데 유용합니다. Vector 예를 들어서 (키, 몸무게)로 벡터를 표현한다면, (180, 70) 과 (164, 50)으로 나타낼 수 있고 두 벡터의 차이는 두 사람의 키, 몸무게에 대한 전체적인 차이를 나타내게 됩니다. (180-164, 70-50) = (26, 20)이 됩니다. 그러면 이 차이에 대해서 이를 어떻게 수치화 할 수 있을까요? 단순하게 키로만 한다면 26, 몸무게로 한다면 20이 됩니다. 혹은 두 개를 평균내서 23이 두 벡터의 차이에 대한 수치화라고 이야기할 수 있습니다. Norm 은 이러한 차이를 나타내는 방법.. 더보기
- Python XML Read, Save, Change (읽고, 쓰고, 값 변경하기) 1. Introduction 필자는 XML 에 대해서 자세히 모르며, 알고 싶지도 않았지만, XML의 값을 읽고 일부값을 변형시켜서 저장시키는 코드를 만들어야 했습니다. 결론적으로 root.iter() 함수를 통해서, tag 와 attribute 에 접근할 수 있으며, 일부값만 변경하고 다시 저장할 수 있다는 것을 알게 되었습니다. XML 구조에 대해서 알고 있다면 Section 2를 건너뛰고 Section 3 :Read and Save 와 Section 4: Attribution change 코드를 사용하시면 됩니다. 2. XML 구조 XML 은 쉽게 말해서 Tag 와 Attribution으로 이루어져 있다. Tag: Object 이름인 것 같습니다. 하나의 object는 단 하나의 Tag만 가지는 듯.. 더보기
- Overfitting을 해결하는 방법 3가지 머신러닝은 학습 데이터로부터 배우고 테스트 데이터에 대해서 예측하는 것을 목표로 합니다. Overfitting은 학습 데이터의 성능은 높지만, 테스트 데이터에 대해서 성능이 나오지 않는 경우를 말합니다. Overfitting을 해결하는 방법은 대표적으로 3가지가 있습니다. 데이터의 수를 늘린다. 모델의 Complexity를 줄인다. Regularization을 사용한다. 편의상 모델의 파라미터에 대한 복잡도를 M, 데이터에 대한 복잡도를 D라고 하겠습니다. Overfitting은 M>D 인 경우에, 학습이 경과됨에 따라서 학습데이터를 모두 학습한 상태를 말합니다. (모델의 복잡도가 충분하므로 데이터를 모두 학습할 수 있습니다.) 문제는 완료된 학습이 데이터에 대한 패턴을 배우는 것이 아니라 데이터를 기억.. 더보기
- 파이썬 명령어 받기 (Parser) 간지나는 프로그래머들은 소스코드를 실행할 때, cmd 창에서 소스코드+명령어를 입력하는 것을 볼 수 있습니다. 오늘은 파이썬에서 이를 도와주는 라이브러리를 소개하겠습니다. [ import argparse ] 이 라이브러리가 바로 argument(명령어)를 읽고 파씽(parsing)해주는 라이브러리 입니다. 사용 방법은 세 단계로 나눠져 있습니다. 1. Parser를 만든다. 2. Parser가 구분할 명령어 추가 3. 값을 지닐 객체를 만든다. 4. 객체의 변수를 사용한다. #1 파서 생성 import argparse # 1. Parser 생성 parser = argparse.ArgumentParser(description='Parser example') #2 파서가 구분할 명령어 추가 # 2. Argu.. 더보기
- 인공지능과 수학 (feat. 예술) 수학과 AI Intro 연구하느라 바쁜 하루를 보내지만, 최근 든 AI의 수학적 모델링에 대해서는 글을 적지 않을 수 없다. 먼저, 나는 수학과를 나왔으며 컴퓨터를 복수전공 하였다. 3학년 때 수학에 대한 심화를 배우면서 현대대수학, 위상수학, 미분기하학등 수학의 본질에 가까운 과목을 접하게 되었고 즐거웠지만 졸업 후 진로가 막연하였다. 그럼에도 4학년 수업까지 꾸역꾸역 들으며 현대대수학의 고급 버전인 체론과 위상수학의 고급 버전인 끈이론을 배우 수학의 깊이에 대해서 실감하였다. 나는 깊은 수학을 탐험하는 대신, 눈앞에 있는 것을 모델링 하였다. 그리고 지금은 AI대학원에서 박사과정을 진학하고 있다.나는 아직도 수학을 좋아하며 지금의 나를 만든 일등공신은 수학이라 생각한다. 그러나 수학은 그 자체만으로.. 더보기