🐾 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.. 더보기
- 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.. 더보기
- Windows 11 자판 배열 바꾸기 Windows 11 자판 배열 바꾸기 설정 -> 시간 및 언어 -> 입력 언어(한국어 -> ... 클릭) -> 키보드 추가/제거 더보기
- 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번째인 그래프를 그리기 위한 모든 것을 담고.. 더보기
- [Meta-Learning] 1. 메타, 메타러닝이란 뭘까? 메타, 메타러닝이란 뭘까? What is Meta? 메타 라는 용어는 한 단계 더 위에 있는 것을 가리킬 때 사용됩니다. 대표적인 예시로, 데이터에 대한 정보를 나타날 때, 데이터에 대한 데이터인 meta-data가 있고, 생각을 잘하고 있는지 생각한다면, 메타인지라고 부르게 됩니다. Meta-Learning? 머신러닝 분야를 공부하다보면 메타러닝이라는 말이 자주 등장합니다. 아마도 대부분의 사람들은 학습하는 방법을 학습한다는 표현은 많이 들어봤을 거에요. 메타의 뜻에 의하면, 메타러닝이랑 러닝에 대해서 한 단계 더 위에 있는 것을 가리킵니다. 여기서 나타나는 학습을 두 단계로 나눠서, 두 단계의 학습에 대해서 알아보겠습니다. 첫 번째 학습 모델이 학습이라는 것은 주어진 데이터로부터 패턴이나 특징을 찾고.. 더보기
- 생성형 언어 모델의 Jailbreak는 막을 수 있을까? (feat. chatGPT) 사람의 언어를 흉내내는 대형언어모델의 성능은 기하급수적으로 높아지고 있다. 인공지능 붐이 일어난지 10년만에 chatGPT모델이 세상을 놀래키는 것을 보면, 앞으로도 생성형 언어 모델은 빠르게 성장할 것이다. 사회적 영향력이 커짐에 따라서 연구자들은 긍정적인 효과보다 부정적인 영향을 걱정하고 있다. 오늘 이야기할 Jailbreak는 언어모델의 부정적 사용의 종류이다. Jailbreak 하기AI모델에게 친구를 왕따시키는 방법을 알려달라고 하자. 그러면 순진한 AI모델은 선악을 구분하지 않고 최대한 정성스럽게 대답해줄 수 있다. 그러나 이러한 부정적인 사용은 AI를 만든 근본적인 목적과 일치하지 않는다. 사람에게, 사회에게 이로운 영향을 끼치기 위해서 AI모델은 대답을 가려서 해야 한다... 더보기
- State Machine Diagram 에 대한 설명 모든 객체들은 생성부터 삭제되기까지 유한 개의 상태를 지니며 객체의 상태를 표현하기 위해서 사용되는 것이 State Machine Diagram(State Chart) 입니다. 객체의 상태와 전이(상태를 바꾸는 행동)을 나타내기 위해서 SMD에는 두 개의 키워드가 있습니다. State: 객체의 상태 Transition: 객체의 상태를 바꾸는 event State State를 나타내는 방법은 두 가지가 있습니다. 단순히 상태만 나타내는 경우와 상태에 들어가기 전, 후, 중간에 하는 활동을 추가하는 경우입니다. entry/Activity(): Object가 S 상태에 들어왔을 때 Activity()를 실행합니다. exit / Activity(): Object가 S 상태서 나갈 때 Activity()를 실행합.. 더보기
- AI 대학원 면접 준비 - 전공 질문 리스트 본 질문들은 필자가 KAIST AI 대학원 면접을 준비하면서 만든 질문 리스트입니다. 머신러닝, 확률, 선형대수학과 관련된 질문들로 모두 답해야 하는 것은 아니며, 알고있는 지식의 정도를 확인하는데 도움이 될 것 같습니다. Statistic / Probability 🧐 Central Limit Theorem 이란 무엇인가? 🧐 Central Limit Theorem은 어디에 쓸 수 있는가? 🧐 큰수의 법칙이란? 🧐 확률이랑 통계랑 다른 점은? 🧐 Marginal Distribution이란 무엇인가? 🧐 Conditional Distribution이란 무엇인가? 🧐 Bias란 무엇인가? [Answer Post] 🧐 Biased/Unbiased estimation의 차이는? [Answer Post] 🧐 Bi.. 더보기
- 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만 가지는 듯.. 더보기
- [Bias 1/3] Machine Learning에서 Bias란 무엇인가? Bias [1]는 Machine Learning에서 필수적인 개념 중 하나 입니다. Bias 는 어느 한쪽으로 치우쳐 있다는 상태를 나타내는 편향이라는 단어를 뜻합니다. 용어가 일상에서 사용될 때는 주로 생각이 치우쳐 있는 것을 나타내는데, Machine Learning에서는 어떤 게 치우쳐 있다는 것을 나타내는 것일까요? 이 포스팅에서는 머신러닝에서 치우쳐있는 편향에 대해서 알아보겠습니다. Machine Learning의 목적 머신러닝은 데이터로부터 패턴을 익히고 관찰하지 못한 새로운 데이터에 대해서 예측하기 위한 모델을 훈련합니다. MNIST, Titanic과 같은 데이터셋은 각각 CNN, XGBoost와 같은 모델로 훈련하고 새로운 문자그림과 승객의 정보가 주어졌을 때, 훈련된 모델로 예측합니다. .. 더보기
- 파이썬 명령어 받기 (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.. 더보기
- Invariant 와 Equivariant 를 구분하는 방법 TL;DR Equivariant는 Rotation을 전후로 적용해도 괜찮은 공간들로 한다. Invariant 는 아웃풋이 아무거나 상관없다. (심지어 스칼라도!) Intro 딥러닝을 하다보면, Representation에 대해서invariant 또는 Equivariant 라는 단어를 쓸 때가 있습니다. 이는 의미상 굉장히 비슷하기 때문에 쓰임새를 구분하는 것이 쉽지 않습니다. 의미적으로 보면, Invariant : 불변, Equivariant : 동일로 해석할 수 있는데, 의미적으로 두 개를 기억하는 것은 아무런 도움이 되지 않으며, 수식을 외운다고 할지라도 단순히 정의을 기억하는 것 이상의 정보를 주진 않습니다. 그래서 Invariant 와 Equivariant 의 차이를 제대로 보여주는 함수의 인풋과.. 더보기
- [Analyse RLLib] 1. Ray와 RLlib의 전체적인 구조 Ray-RLLib 1 Ray의 전체적인 구조 2 RLlib 2. Policy 2 Sample Batches 3 Trainer Ray RLlib Overall View Contents References Ray-RLLib 1 Ray의 전체적인 구조 Ray는 분산처리를 위한 프로젝트로 파이썬으로 작성되었습니다. 이를 바탕으로 시간이 오래 걸리는 강화학습을 더욱 효율적으로 할 수 있습니다. 강화학습 라이브러리로 유명한 OpenAI Gym과도 연동된다는 점은 Ray로 학습을 해야 하는 중요한 이유입니다. 이러한 라이브러리를 만든 목적도 OpenAI Gym형태의 Envrionment에 대해서 RLlib를 적용시켜서 학습하는 것. 2 RLlib RLlib에서 바꿀 수 있는 부분은 다음과 같다. 해당 부분에 대해서 .. 더보기
- env.yml [파이썬 환경 설정] requirements.txt 이외에 콘다에서 필요한 라이브러리를 설치하는 방법이 이외에 가상 환경을 바로 생성하는 코드 + 필요한 라이브러리를 바로 설치 하는 방법이 있습니다. 커맨드 창에서 env.yml 파일을 이용해서 가상환경 만들기 conda env create -f env.yml env.yml 작성법 name: ml channels: - defaults - conda-forge dependencies: - python=3.6.8 - pip - pip: - matplotlib~=3.3.2 - sklearn~=0.0 이후 가상 환경을 활성화 해주면 됩니다. conda activate ml 예시 github.com/fxnnxc/trainML fxnnxc/trainML Contribute to fxnn.. 더보기
- [Math] Vector Norm의 종류와 중요성 벡터는 세상의 다양한 값들을 나타내는데 유용하게 사용됩니다. 단순하게 나타낼뿐만 아니라 값들의 연관성을 파악하는데도 유용하게 사용될 수 있는데, Norm은 그러한 연관성을 나타내는데 유용합니다. Vector 예를 들어서 (키, 몸무게)로 벡터를 표현한다면, (180, 70) 과 (164, 50)으로 나타낼 수 있고 두 벡터의 차이는 두 사람의 키, 몸무게에 대한 전체적인 차이를 나타내게 됩니다. (180-164, 70-50) = (26, 20)이 됩니다. 그러면 이 차이에 대해서 이를 어떻게 수치화 할 수 있을까요? 단순하게 키로만 한다면 26, 몸무게로 한다면 20이 됩니다. 혹은 두 개를 평균내서 23이 두 벡터의 차이에 대한 수치화라고 이야기할 수 있습니다. Norm 은 이러한 차이를 나타내는 방법.. 더보기
- Transformer 해석과 Attention Heads 1. 서론 최근 딥러닝은 트랜스포머를 바탕으로 더욱 빠르게 성장하고 있다. 트랜스포머에는 어텐션 (Multi-Head Attention, MHA) 과 MLP 라는 두 개의 주요 모듈이 존재하며, 이들의 활성화된 값을 이해하는 것은 모델의 의사결정에 대한 해석을 제공해준다. MHA 의 역할은 입력 토큰들에 대한 정보교환, MLP 의 역할은 메모리로부터 정보생성의 관점이 알려져 있다 [2,3,4,5]. 트랜스포머의 내부에 대해서는 아직 의견이 분분하지만, 적어도 두 가지 모듈 중에서 MHA 대한 해석은 상당히 많은 연구가 진행되었다 [6,7,8,9]. 이 글에서는 최근 발달한 MHA 에 대한 연구들을 기반으로, 트랜스포머 MHA 에 대하여 풀린 문제를 정의하고 풀리지 않은 추가적인 문제를 의논한다. MHA .. 더보기