분류 전체보기
-
들어가기 전에 MLflow가 등장하기 이전에는 사람들이 각자 자신의 코드를 jupyter notebook에서 작성하여 머신러닝 모델을 학습할 때 사용한 파라미터와 metric을 따로 기록했다. 학습하며 생긴 weight file을 저장하여 coworker에게 공유하기도 했으며, weight file 이름으로 모델 버전을 작성하거나 아예 모델 버전을 지정하지 않기도 했다. 그러나 개인 컴퓨터 등을 사용하다가 메모리 초과(Memory Exceed) 오류가 발생할 수도 있고, 실험을 추적하기 어렵거나 코드를 재현하기 어렵다는 단점이 있었다. 또한 모델을 패키징하고 배포하는 방법이 어려우며, 이를 관리하기 위한 중앙 저장소가 없다는 것도 큰 문제였다. 이러한 문제를 해결할 수 있는 관리 플랫폼 중 하나로서 ML..
ML 실험을 위한 관리 플랫폼인 MLflow들어가기 전에 MLflow가 등장하기 이전에는 사람들이 각자 자신의 코드를 jupyter notebook에서 작성하여 머신러닝 모델을 학습할 때 사용한 파라미터와 metric을 따로 기록했다. 학습하며 생긴 weight file을 저장하여 coworker에게 공유하기도 했으며, weight file 이름으로 모델 버전을 작성하거나 아예 모델 버전을 지정하지 않기도 했다. 그러나 개인 컴퓨터 등을 사용하다가 메모리 초과(Memory Exceed) 오류가 발생할 수도 있고, 실험을 추적하기 어렵거나 코드를 재현하기 어렵다는 단점이 있었다. 또한 모델을 패키징하고 배포하는 방법이 어려우며, 이를 관리하기 위한 중앙 저장소가 없다는 것도 큰 문제였다. 이러한 문제를 해결할 수 있는 관리 플랫폼 중 하나로서 ML..
2023.01.04 -
들어가기 전에 이제까지 딥 러닝 모델은 CNN(Convolution Neural Network), RNN(Recurrent Neural Network), Transformer 등 다양한 신경망 모델 종류로 발전해 왔다. 그렇지만 복잡한 구조 또는 관계를 지니는 문제를 임베딩하는 데 한계가 있어왔고, 이러한 문제를 해결할 수 있는 모델로서 그래프(Graph)를 사용한 신경망 모델이 제안된다. 이번 글에서는 그래프를 사용한 딥 러닝 모델인 GNN의 정의와 의의에 관해 살펴보고, GNN 모델을 해석하는 관점에서 제시된 여러 종류의 GNN 모델에 관해 살펴보자. 그래프(Graph)의 정의와 사용 그래프는 정보과학을 공부하면 항상 빼 놓을 수 없는 중요한 자료구조이다. 프로그래밍 문제를 푼 사람들이라면 알겠지만 ..
GNN(Graph Neural Network)의 정의와 특징 그리고 추천시스템에서의 GNN 계열 모델들어가기 전에 이제까지 딥 러닝 모델은 CNN(Convolution Neural Network), RNN(Recurrent Neural Network), Transformer 등 다양한 신경망 모델 종류로 발전해 왔다. 그렇지만 복잡한 구조 또는 관계를 지니는 문제를 임베딩하는 데 한계가 있어왔고, 이러한 문제를 해결할 수 있는 모델로서 그래프(Graph)를 사용한 신경망 모델이 제안된다. 이번 글에서는 그래프를 사용한 딥 러닝 모델인 GNN의 정의와 의의에 관해 살펴보고, GNN 모델을 해석하는 관점에서 제시된 여러 종류의 GNN 모델에 관해 살펴보자. 그래프(Graph)의 정의와 사용 그래프는 정보과학을 공부하면 항상 빼 놓을 수 없는 중요한 자료구조이다. 프로그래밍 문제를 푼 사람들이라면 알겠지만 ..
2023.01.02 -
들어가기 전에 이 세상의 많은 일들은 확률적인 경우가 많다. 그 상황에서 우리는 자신의 목적에 가장 부합하면서 확률적으로 발생 가능성이 높거나 낮은 것을 고려하여 최선의 선택을 하려고 한다. 그러면 그 확률이란 것에 주목해야 할 필요가 있지 않을까? 이번 시리즈 글에서는 확률에 관한 정의와 이와 관련한 대표적인 정리들을 소개하고자 한다. 그전에 확률과 관련한 정의를 알아보고, 확률과 명제가 어떠한 관계가 있는지 알아보자. 불확실성과 결정 우리는 일상 생활에서 여러 문제점들을 맞닥뜨리고 이를 해결하고자 노력한다. 꼭 중요한 시험 문제를 풀어서 맞추는 것 뿐만이 아니라 출근해야 하는데 늦게 기상을 해서 어떠한 교통 수단을 이용해야 할지, 어떤 점심 메뉴를 선택해야 좀 더 맛있는 음식을 저렴하게 먹을 수 있는..
[인공지능 기초] Uncertainty (1) - 확률적인 추정을 위한 확률과 사건, 그리고 명제들어가기 전에 이 세상의 많은 일들은 확률적인 경우가 많다. 그 상황에서 우리는 자신의 목적에 가장 부합하면서 확률적으로 발생 가능성이 높거나 낮은 것을 고려하여 최선의 선택을 하려고 한다. 그러면 그 확률이란 것에 주목해야 할 필요가 있지 않을까? 이번 시리즈 글에서는 확률에 관한 정의와 이와 관련한 대표적인 정리들을 소개하고자 한다. 그전에 확률과 관련한 정의를 알아보고, 확률과 명제가 어떠한 관계가 있는지 알아보자. 불확실성과 결정 우리는 일상 생활에서 여러 문제점들을 맞닥뜨리고 이를 해결하고자 노력한다. 꼭 중요한 시험 문제를 풀어서 맞추는 것 뿐만이 아니라 출근해야 하는데 늦게 기상을 해서 어떠한 교통 수단을 이용해야 할지, 어떤 점심 메뉴를 선택해야 좀 더 맛있는 음식을 저렴하게 먹을 수 있는..
2022.12.30 -
Adversarial Search Adversarial Search란? Adversarial search는 '적대적인'이라는 'adversarial'의 의미에서 유추할 수 있는 것처럼 둘 이상의 대상(multi-agent)이 서로 다른 목표를 달성하기 위해 적대적인 관계에서 경쟁하는 것이다. 다른 대상의 행동이 자신의 성공에 영향을 끼치므로 자신의 목표를 달성하기 위해 최선의 행동을 선택할 때 다른 대상이 선택할 가능성이 있는 행동을 모두 고려해야 한다. 우리가 일상에서 자주 하는 게임(game)이 바로 대표적인 adversarial search이며, 자신이 이기기 위해 다른 플레이어의 행동을 고려하여 가장 좋은 수를 선택하려고 한다. 이러한 맥락에서 adversarial search를 game sear..
[인공지능 기초] Adversarial Search - Minimax Search와 Alpha-beta PruningAdversarial Search Adversarial Search란? Adversarial search는 '적대적인'이라는 'adversarial'의 의미에서 유추할 수 있는 것처럼 둘 이상의 대상(multi-agent)이 서로 다른 목표를 달성하기 위해 적대적인 관계에서 경쟁하는 것이다. 다른 대상의 행동이 자신의 성공에 영향을 끼치므로 자신의 목표를 달성하기 위해 최선의 행동을 선택할 때 다른 대상이 선택할 가능성이 있는 행동을 모두 고려해야 한다. 우리가 일상에서 자주 하는 게임(game)이 바로 대표적인 adversarial search이며, 자신이 이기기 위해 다른 플레이어의 행동을 고려하여 가장 좋은 수를 선택하려고 한다. 이러한 맥락에서 adversarial search를 game sear..
2022.10.09 -
자신에게 할당받거나 또는 자신이 운영 중인 서버가 있는데, 이를 원격으로 접속하여 jupyter 환경을 이용하고 싶을 때 유용할 수 있다. 인터넷 환경이 갖춰진 곳에서 웹 브라우저만 있어도 본인이 알고 있는 비밀번호를 이용하면 서버의 jupyter를 이용할 수 있는 것. 이 글에서는 네이버 부스트캠프 AI Tech 활동에서 제공한 AI Stages의 서버를 이용하지만, AWS EC2, GCP 등 여러 클라우드 플랫폼의 서버에도 같은 방법으로 적용할 수 있다. 설정 과정 우선 서버에 터미널을 이용하여 ssh로 접속한다. which jupyter로 jupyter가 설치되어 있는지 확인하고, 설치되지 않았으면 pip install jupyter로 이를 설치한다. 이왕 설치하는 김에 뒤에서 필요할 Jupyter..
원격 서버에서 Jupyter Notebook 또는 Jupyter Lab을 실행하여 접속하기자신에게 할당받거나 또는 자신이 운영 중인 서버가 있는데, 이를 원격으로 접속하여 jupyter 환경을 이용하고 싶을 때 유용할 수 있다. 인터넷 환경이 갖춰진 곳에서 웹 브라우저만 있어도 본인이 알고 있는 비밀번호를 이용하면 서버의 jupyter를 이용할 수 있는 것. 이 글에서는 네이버 부스트캠프 AI Tech 활동에서 제공한 AI Stages의 서버를 이용하지만, AWS EC2, GCP 등 여러 클라우드 플랫폼의 서버에도 같은 방법으로 적용할 수 있다. 설정 과정 우선 서버에 터미널을 이용하여 ssh로 접속한다. which jupyter로 jupyter가 설치되어 있는지 확인하고, 설치되지 않았으면 pip install jupyter로 이를 설치한다. 이왕 설치하는 김에 뒤에서 필요할 Jupyter..
2022.10.08 -
들어가기 전에 우리는 대개 컴퓨터를 주로 사용할 때 마우스를 움직여서 어떠한 그래픽 요소을 다루는 GUI(Graphic User Interface)에 익숙한 경우가 많다. 그러나 처음으로 Linux 또는 Unix를 접할 때 그동안 생전 보지 못했던 CLI(Command Line Interface)를 만날 수 있다. 막상 첫 CLI를 다룰 때는 어색할 수 있어도 기본적인 명령어를 익히고 Linux 환경에서 프로그램이나 시스템을 다룰수록 CLI의 편리함과 매력을 느끼게 될 것이다. 이번 글에서는 Linux에 관한 간단한 소개와 기본적인 명령어를 소개하고, 각각의 명령어가 구체적으로 어떠한 역할을 하는지 예시를 통해 다뤄볼 것이다. Linux Linux를 왜 알아야 할까? Linux는 서버에서 일반적으로 흔히..
Linux(리눅스) Shell Command(쉘 명령어)들어가기 전에 우리는 대개 컴퓨터를 주로 사용할 때 마우스를 움직여서 어떠한 그래픽 요소을 다루는 GUI(Graphic User Interface)에 익숙한 경우가 많다. 그러나 처음으로 Linux 또는 Unix를 접할 때 그동안 생전 보지 못했던 CLI(Command Line Interface)를 만날 수 있다. 막상 첫 CLI를 다룰 때는 어색할 수 있어도 기본적인 명령어를 익히고 Linux 환경에서 프로그램이나 시스템을 다룰수록 CLI의 편리함과 매력을 느끼게 될 것이다. 이번 글에서는 Linux에 관한 간단한 소개와 기본적인 명령어를 소개하고, 각각의 명령어가 구체적으로 어떠한 역할을 하는지 예시를 통해 다뤄볼 것이다. Linux Linux를 왜 알아야 할까? Linux는 서버에서 일반적으로 흔히..
2022.10.06 -
Visual Programming으로 AI 모델링이 가능한 웹 어플리케이션을 개발하며 지난 7~8월 여름방학에 고려대학교 정보대학 HVCL 연구소에서 학부 인턴으로 근무하면서 어떠한 일을 진행했는지를 개발 후기를 남기는 게 좋을 것 같아서 글을 쓰려고 한다. 그동안 팀 프로젝트 단위로 개발을 해 본 경험이 있지만, 대학원 연구실에서 근무하는 것은 처음이었고 게다가 개인적으로 의학 분야는 처음 접해서 많이 애를 먹었다. 하지만 막상 두 달의 근무 기간이 끝나고 회고해보면 적지 않은 성장을 이룬 것 같아서 보람찬 마음이 크고, 앞으로 Backend와 AI Engineering이라는 나의 궁극적인 목표에 한 발자국 다가갈 수 있는 초석을 다졌다고 생각한다. 두 달이라는 짧은 시간동안 AI 모델링과 웹 어플리케..
Visual Programming으로 AI 모델링이 가능한 웹 어플리케이션 개발 후기Visual Programming으로 AI 모델링이 가능한 웹 어플리케이션을 개발하며 지난 7~8월 여름방학에 고려대학교 정보대학 HVCL 연구소에서 학부 인턴으로 근무하면서 어떠한 일을 진행했는지를 개발 후기를 남기는 게 좋을 것 같아서 글을 쓰려고 한다. 그동안 팀 프로젝트 단위로 개발을 해 본 경험이 있지만, 대학원 연구실에서 근무하는 것은 처음이었고 게다가 개인적으로 의학 분야는 처음 접해서 많이 애를 먹었다. 하지만 막상 두 달의 근무 기간이 끝나고 회고해보면 적지 않은 성장을 이룬 것 같아서 보람찬 마음이 크고, 앞으로 Backend와 AI Engineering이라는 나의 궁극적인 목표에 한 발자국 다가갈 수 있는 초석을 다졌다고 생각한다. 두 달이라는 짧은 시간동안 AI 모델링과 웹 어플리케..
2022.09.01 -
들어가기 전에 'Attention is All You Need'라는 논문을 필두로 CV, NLP, RecSys 등 많은 분야와 여러 AI 대회에서 Transformer를 사용하는 경우는 이제 너무나 흔한 일이 되었다. 그만큼 Self-Attention을 기반으로 하는 Transformer가 딥 러닝 분야에 막대한 영향을 끼친 breakthrough라고 말해도 과언이 아니다. 그러나 과연 Transformer를 어떠한 경우에서든 상관없이 무작정 사용하는 것이 바람직한가에 관해서 의문이 들 수 있다. Transformer라고 항상 만능이 아니므로 모델을 사용할 목적과 환경을 고려해야 할 필요가 있으며, 특히 데이터의 상태와 양에 따라 Transformer의 효율이 좋을 수도 있고 나쁠 수도 있다. 이번 글에..
Transformer를 사용하는 것이 항상 좋을까?들어가기 전에 'Attention is All You Need'라는 논문을 필두로 CV, NLP, RecSys 등 많은 분야와 여러 AI 대회에서 Transformer를 사용하는 경우는 이제 너무나 흔한 일이 되었다. 그만큼 Self-Attention을 기반으로 하는 Transformer가 딥 러닝 분야에 막대한 영향을 끼친 breakthrough라고 말해도 과언이 아니다. 그러나 과연 Transformer를 어떠한 경우에서든 상관없이 무작정 사용하는 것이 바람직한가에 관해서 의문이 들 수 있다. Transformer라고 항상 만능이 아니므로 모델을 사용할 목적과 환경을 고려해야 할 필요가 있으며, 특히 데이터의 상태와 양에 따라 Transformer의 효율이 좋을 수도 있고 나쁠 수도 있다. 이번 글에..
2022.08.31