본문 바로가기

전체 글

(13)
[Week 12] Exploration 노드를 마치며 AIFFEL 과정을 시작한지 어느덧 세 달이 되어가고 있다. 벌써 6개월 과정의 절반을 마무리했다는 것이 감회가 새롭다. 특히 이번 주에는 매주 화요일, 목요일마다 컴퓨터를 뜨겁게 돌아가게 했던 Exploration 노드가 20번째를 끝으로 마무리되었다. AI의 다양한 분야를 접하며 새로 알게 된 내용도 많고, 매주 과제를 제출하면서 성취감도 느낄 수 있었다. 그래서 오늘은 그동안 배웠던 내용을 주제별로 나눠서 간략하게 정리해보고자 한다. Computer Vision E1. Image Classification - 인공지능과 가위바위보 하기 역시 딥러닝의 시작은 MNIST부터다. MNIST 데이터로 간단한 이미지 분류 모델을 학습시키는 연습을 해보고, 직접 사진을 찍어 가위바위보 이미지를 분류하는 프로젝..
[Git] 실수 되돌리기(git reset), 변경하기 git을 사용하다 보면 add나 commit, push 등을 잘못하여 취소해야 하는 상황이 발생하곤 한다. 그리고 commit 메시지를 수정하거나 GitHub에 잘못 올린 파일을 삭제하는 등 크고 작은 변경사항이 생길 때도 있다. 이러한 상황에서 유용하게 사용할 수 있는 여러 가지 명령어를 정리해보았다. add 취소하기 HEAD 뒤에 파일명을 적으면 해당 파일의 add만 취소하고, 파일명을 적지 않으면 add된 파일 전체를 unstaged 상태로 되돌린다. $ git reset HEAD commit 취소하기 git log에서 지금까지 수행된 각 commit의 HEAD 번호와 고유한 id를 확인할 수 있다. $ git log HEAD~ 뒤에 숫자를 넣으면 마지막 n개의 commit을 취소할 수 있다. $ ..
[Week 8] GAN장공장공장장 Exploration 11. 뉴스 요약봇 만들기 딥러닝을 통해 텍스트를 요약하는 방식엔 두 가지가 있다. 하나는 원문의 단어를 추출해서 조합하는 Extractive 방식이고, 다른 하나는 연관 단어를 생성하여 새로운 문장을 만들어내는 Abstractive 방식이다. 자연어 처리에 많이 쓰이는 seq2seq과 Attention Mechanism을 활용하여 Abstractive 요약을 해보니, 키워드를 잘 찾아낸 것도 있지만 원문에 없는 엉뚱한 내용을 만들어낸 경우도 있었다. 어쨌든 요즘 같이 정보가 넘쳐나는 세상에 텍스트 요약은 꼭 필요한 기술인 것 같다. 12. 인공지능으로 세상에 없던 새로운 패션 만들기 이번 노드에서는 생성 모델링(Generative Modeling)이라는 흥미로운 기법에 대해 배웠다..
[Week 6] 캐글 하다 말고 고양이가 둠칫둠칫 Exploration 9. 캐글 경진대회 맛보기 데이터 사이언스에 관심 있는 사람이라면 필수로 거쳐야 할 관문인 캐글에 처음으로 결과물을 제출해보았다. 캐글에 있는 데이터셋은 연습용으로 많이 활용해봤지만 대회에 직접 submission 해본 것은 처음이었다. GitHub에 처음으로 잔디를 심었을 때처럼 또 하나의 산을 넘은 기분이었다. 이번에 연습 삼아 참가한 2019 2nd ML month with KaKR는 King County의 집 정보를 바탕으로 집값을 예측하는 것이 주제였다. King County라면 예전에 시애틀에서 지냈을 때 살았던 집도 잘 찾아보면 있을 것 같다. 이 데이터셋을 보면 미국 인턴 시절의 추억이 떠올라서 자꾸 딴 길로 새게 되는데, 더 시간 끌지 말고 마무리해야할 것 같다. 1..
[Week 5] 인공지능한테 이것저것 시켜보자 Exploration 7. 나랑 닮은 연예인을 찾아줘! 한 10년도 더 전에 스마트폰이 처음 나왔을 때 가장 핫했던 앱 중에 하나가 나와 닮은 연예인을 찾아주는 앱이었다. 당시 학교 다닐 때 너도 나도 사진을 찍어서 어떤 연예인이랑 닮았는지 자랑하고 다니는 게 유행이었다. 그 때 그 앱이 어떻게 닮은 얼굴을 찾아주었는지 이번 시간을 통해 배울 수 있었다. 각 이미지별로 얼굴 임베딩 벡터를 추출하고, 서로 다른 이미지 간의 벡터 거리를 계산해서 거리가 가까운 얼굴을 찾아주는 것이었다. 프로젝트를 할 때 일부러 웃는 사진과 무표정인 사진을 골라 모두 테스트해봤는데, 놀랍게도 Top 5에 같은 연예인이 대거 포진되어 있었다. 다른 표정이어도 유사한 얼굴이라고 잘 인식해서 신기했다. 물론 결과는 비밀이다. 채점..
[Week 4] 분수처럼 흩어지는 종소리 woo, shake! Fundamental 7. 터미널로 배우는 리눅스 운영체제 첫 주에 배웠던 기본적인 터미널 명령어에 이어 여러 가지 명령어와 리눅스 운영체제에 대해 배웠다. 첫 주에는 리눅스도 처음이고 명령어도 처음이라 기본적인 것도 헷갈렸는데, 그동안 꾸준히 커밋을 해서 지금은 많이 익숙해졌다. 물론 주로 쓰는 명령어는 아직 몇 개 안되지만, 앞으로 차차 익혀나가면서 터미널과 좀 더 친숙해져야겠다. 8. 데이터를 한눈에! Visualization 파이썬 라이브러리 Pandas, Matplotlib, Seaborn으로 그래프 그리는 방법을 배웠다. 도화지를 펼쳐 놓고, 축을 그리고, 그래프를 그리는 것까지 기초부터 차근차근 설명이 잘 되어 있어서 유익했다. 시각화는 따로 배운 적이 없어서 인터넷에 있는 코드를 통으로 긁..
[Week 3] Today I Learned Fundamental Stage 4. 텍스트 데이터 다루기 데이터 중에 가장 기본이라 할 수 있는 텍스트 데이터와 문자열을 다루는 방법에 대해 배웠다. 인코딩과 디코딩, 문자열 관련 메서드, 정규표현식 등 기본적이면서 반드시 알아야 할 내용이었다. 그리고 파일과 디렉토리, 모듈과 패키지의 개념을 비롯하여 이와 관련된 함수와 메서드도 배웠다. 마지막으로 CSV, XML, JSON 파일을 읽고 쓰는 방법을 배웠다. 대부분은 전에 해본 적이 있어 아는 내용이었지만, 머릿속에 중구난방 뒤섞여 있던 개념들을 되짚어보며 정리하는 시간이었다. 5. Data Representation 드디어 NumPy와 Pandas가 등장했다. 여담이지만 전에 빅데이터 교육 과정을 들을 때, 수업에서는 이론적인 부분을 주로 다루다가 ..
[Git] Git, GitHub 기본 사용법 Git과 GitHub을 다루는 것은 개발자가 되는 첫걸음이라 할 수 있을 정도로 필수적인 관문이다. 간단히 설명하자면 Git은 로컬에서 작업한 코드의 버전을 관리하는 툴이고, GitHub는 Git의 버전 기록을 올려 원격으로 협업할 수 있는 웹사이트이다. GitHub를 많이 보기는 했지만 실제로 다뤄보는 것은 처음이라 명령어가 익숙하지 않았다. 그래도 올해 1일 1커밋을 목표로 매일 사용하다 보니 차츰 손에 익기 시작했다. 다시 복습도 해볼 겸 Git과 GitHub의 기본 사용법을 정리해보았다. Git 사용법 1. Git으로 버전 관리 시작하기 1-1. Git 설치 및 버전 확인 $ sudo apt-get install git $ git --version 1-2. 디렉토리에 Git 심기 $ cd ~ $ ..