개발용 폰트 이클립스를 새로 세팅할때마다 기본용 폰트를 보면 참 난감합니다. 너무 글자가 작아보이고, 그렇다고 뭔가 개발스럽지 않은 폰트때문에 능률도 왠지 안 오르는 것 같습니다. 저는 그래서 제 주관적으로 가장 개발자스러운 폰트인 "Courier New"를 추천합니다. 이 폰트는 한글도 이뻐서 주석달기 좋고 영문도 이쁘게 타이핑 됩니다. 위 화면은 이클립스를 최초로 세팅하는 화면인데 참 맘에 안듭니다. 저는 시력이 특히 안 좋아서 더더욱 몸에서 거부감을 느끼는 것 같네요. 폰트 변경 폰트를 변경하면 처음에 메뉴에서 Window -> Preference를 선택합니다. Appearance -> Colors and Fonts -> Basic 항목에서 내려 갑니다. Text Font -> Edit 항목을 클릭..
과적합의 개념 - 데이터가 너무 Fit하게 학습이 되면서 생기는 문제를 과적합(Over-fitting)이라 부르며, 데이터의 학습이 제대로 되지 않는 상태인 반대 개념을 언더 피팅(Under-fitting)이라 한다 과적합이 발생하는 사유 학습 데이터가 너무 적은 경우 학습 데이터 전처리를 잘못한 경우 특징(Feature) 데이터가 너무 많은 경우 과적합 사례 예를 들어 다음과 같은 설문조사 데이터를 학습 데이터로 사용해보고자 한다. 우리나라 특별시, 광역시, 도를 기반으로 지역 값을 생성하고 10대, 20대와 같은 나이대를 값으로 생성하며, 성별 값, 학력을 feature data로 놓고 최종 labeling 할 데이터를 연봉이라고 가정을 해보자 지역 설계 서울시 0 대전 1 세종 2 광주 3 울산 4..
척도(Metrics)의 개념 척도라는 것은 어떤 모델을 평가(Evaluate)하기 위해서 사용하는 값이다. 그러다보니 비슷한 개념의 목적/손실함수(Loss Function)와의 개념이 헷갈릴 수 있다. 손실함수는 모델의 성능을 끌어올리기 위해서 참조하는 값이다. 즉, 트레이닝(training, 학습)을 위해서만 사용하는 나침반과 같은 존재라고 한다면, 척도는 결과적으로 이 모델의 성능은 얼마짜리야라는 개념이다. 그렇기 때문에 척도와 손실 함수의 개념은 분리되어야 하지만 경우에 따라서는 특정 척도에 따라 최적화 하는 것이 최상일 때도 있다. 둘간의 개념이 사실상 유사하기 때문에 동일한 개념으로 어쩔땐 척도를 사용하기도 하고 어쩔땐 손실함수를 쓰기도 한다. 척도의 종류 정확도(Accuracy) 사실상 가장 ..
목적/손실 함수(Loss Function) 이란? 딥러닝 혹은 머신러닝은 컴퓨터가 가중치를 찾아가는 과정이다. 일단 아래 예를 보도록 해보자. 4 = 2a + b 6 = 3a + b 이와 같은 문제가 있다고 가정을 해보자, 사람들에게 a와 b에 들어가야 되는 답은 무엇인가? 라고 물어본다면 값을 대입해서 문제를 풀어본다던지 직관적으로 풀어본다던지 아니면 여러가지 공식을 써서 풀어본다던지 할 것이다. 2번과 3번과 같은 경우 컴퓨터에게 시키기에는 매우 힘든 작업이다. 반대로 값이 엄청 많을 경우 1번은 인간에게 힘들 수 있다. 물론 위의 문제는 너무 쉽기 때문에 값을 대충 대입해서도 충분히 맞출 것이다. 컴퓨터는 기본적으로 첫번째 방법인 값을 대입해서 문제를 풀어본다. 그래서 대입한 결과와 실제 정답간의 ..
다시 기초부터 포스팅 하나당 신경망 하나를 포스팅하는 것은 쓰는 사람도 그걸 받아들이는 사람들 중에 비전공자는 힘들 수 있다. 이미 MNIST(손글씨)와 유사한 Fashion MNIST(패션 아이콘)를 분류하는 모델을 포스팅한 적이 있지만, 하나하나 디테일하게 설명하지 못한 아쉬움이 있다. 이번 포스팅부터는 좀 더 쉽게 설명하기 위해서 신경망을 하나하나 코딩할 때마다 해당되는 기술들에 대해서 별도의 포스팅을 작성하고 어떤 방법으로 이루어지는지 써보도록 한다. 그리고 성능을 올리기 위해서 어떻게 튜닝을 하는지 적어보도록 하겠다. train에 사용될 매개변수(parameter)들 import tensorflow as tf import numpy as np from tensorflow import keras ..
사람과 컴퓨터는 데이터를 바라보는 형태가 다르다 인간과 컴퓨터는 데이터를 바라보는 형태가 다르다 사람은 어떤 물체를 보더라도 숫자로 인식하지는 않지만 컴퓨터에게 인공지능을 구현시키기 위해서는 컴퓨터가 알아먹기 쉽게 숫자값으로 변환을 해줘야 된다. 예를 들어 내가 지금 여기서 열심히 포스팅을 하고 있는 내용을 컴퓨터에게 이해 시키려면 단어들을 숫자 형태로 정리해서 컴퓨터에게 입력시켜줘야 한다는 것이다. 원핫 인코딩(One-Hot Encoding)은 사람이 매우 쉽게 이해할 수 있는 데이터를 컴퓨터에게 주입시키기 위한 가장 기본적인 방법이다. 원핫인코딩 개념 원핫(One-Hot) 인코딩이라는 말처럼 이 기술은 데이터를 수많은 0과 한개의 1의 값으로 데이터를 구별하는 인코딩이다. 예를 들어, 글자가 적힌 종..
딥러닝(Deep Learning)을 이해하기 위해서는 몇가지 개념들을 확실히 익히고 넘어가야 한다. 사실 딥러닝이라는 것은 프로그램적인 요소보다는 이미 만들어진 것을 어떻게 잘 조율해서 사용해야 하는지에 더 달려있기 때문에(요즘 트렌드 자체가 know-where 이기도 하고...) 너무 복잡하게 수식을 이해할 필요도 없고 간단하게 이해하고 넘어가도 딥러닝을 구현하는데 크게 지장이 없을 것이다. 논문을 쓰고 완전히 이쪽길로 깊게 공부하는 사람들은 당연히 수식까지 짜면서 공부를 해야 하겠지만 개발자이기도 하고 딥러닝도 어느정도 핸들링하는 사람들이라면 어느때에 이 기술이 좋더라 정도만 알아도 개발하는데 전혀 지장이 없다. 활성화 함수(Activation Function) 개념 딥러닝은 다양한 레이어(layer..
기존에 작성했던 아나콘다 설치 방법이 변경돼서 빠르게 재포스팅을 하고자 한다. 변경된 아나콘다 내 기억이 정확한지는 모르겠지만, 기존에 아나콘다는 선택하는 것이 많지 않았다. 마치 완벽한 오픈소스처럼 보였고 상업 라이센스가 존재하지 않는 것마냥 보였던 것으로 기억한다. 그러나 엘라스틱도 그렇고 아나콘다 역시나 최근 들어서 라이센스가 다양화 되었기 때문에 함부로 설치하면 안될 것으로 보인다. https://www.anaconda.com/products/individual 아나콘다의 제품은 현재, 개인, 팀에디션, 엔터프라이즈 에디션, 프로페셔널 서비스로 나뉘며 무료로 쓰는 제품은 individual(개인) 제품을 선택하면 된다. 위 링크는 개인 제품 링크이니 들어가서 다운로드 받으면 된다. 본인의 OS와 ..
암호화폐도 이제 2021년 10월부터 투자소득의 22%를 과세하게 된다. 그나마 다행인건 소득 250만원까지는 세금을 내지 않는 구간이 있다는 것이다. 즉 내가 암호화폐로 500만원의 수익을 올리게 된다면 250만원의 22%의 세금 55만원 정도만 내는 구조이다. 소득이 있는 곳에 세금을 내는건 어쩔 수 없는 과정이었고, 그동안 한국은 늦게 진입하여 대다수가 피해자였기 때문에 암호화폐 과세에 상당히 조심스러운 모습을 보였었지만, 이제 잠잠해지기도 했고 부동산, 주식 모두 건드렸으니 암호화폐도 건드릴 필요성이 보였나보다. 다만 아쉬운건 주식 수준의 거래세를 했으면 어땠을까 싶다. 암호화폐로 1~2% 먹을려는 사람이 없는 것처럼 주식 수준의 거래세 정도는 충분히 투자자들 입장에서 낼 수 있는 것이기에(물론 ..
집이 층고가 높고 통창이 많다보니 여름만 되면 엄청 덥고, 겨울만 되면 추운 집이다. 오로지 뷰가 좋아서 들어간 이 망할 집은 거실에는 에어컨이 있지만 침실과 컴퓨터방에는 에어컨이 없어서 더운 여름에 선풍기를 틀고 살고 있었다. 그나마 다행인것은 내 체질이 추위를 잘 타지만 더위를 많이 타는 성격이 아니라서 그럭저럭 선풍기와 냉풍기들로 버틸 수 있었다. 다만 문제가 있었는데 잘 때 덥다보니, 선풍기를 얼굴쪽 가까이 틀 수 밖에 없었고 고양이들은 선풍기 바람이 신기한지 선풍기쪽으로 오는 바람에 고양이 털이 얼굴쪽으로 날려서 깨는 사태가 하루에 3~4번은 있었다. 그러다보니 하루가 너무 피곤했고 잠을 깨기 위해, 커피랑 몬스터 에너지를 흡입하는 수준으로 마셔서 이러다가 객사할 수 있겠구나 싶어서 결국 에어컨..
기계독해(MRC)는 만드는 사람 맘이기 때문에 사실 다양한 방법들이 존재한다. 챗봇을 하나 만들어도 다양한 기법들이 존재하는 것처럼 챗봇과 본질적으로 유사한 기계독해 역시 마찬가지이다. 다만 기계독해는 문서를 기반으로 공부를 해야 한다는 차이가 있을 것이다. 기계독해 타입들 아래는 필자가 생각하는 기계독해의 타입들이라 생각한다. 물론 다양한 기법들이 존재하지만 대표적으로 몇가지만 끄적여 보았다. 1. 학습없이 진행하는 실시간 타입 가. 질문에 해당하는 가장 유사한 문장을 찾기 나. 해당 문장에서 가장 적합한 답변을 추출하기 이렇게 적으니 엄청 심플해 보인다. 엄청 간단해보이지만, 사실 위 내용을 구현하기 위해서는 인덱스를 추출하고 어느정도 의미를 추출해야만 가능하다. 2. 질문과 문장을 학습한 나름 딥러..
기계독해(MRC)란 컴퓨터에게 질문을 던졌을 때 답을 하는 매우 인공지능스러운 분야이다. 그러나 기계독해라는 것이 한글 기준으로 참 지랄맞은 부분이 있기 때문에 포스팅을 하면서 생각의 정리를 하고자 한다. 처음에 BERT를 봤을 때는 참 만능처럼 보였고, Step by Step으로 KorQuad를 진행하였을 때 뭔지도 모른 상태로 남들이 하라는 대로 하였다. 내 머리속에 기계독해는 문서를 던지면 문서를 통째로 읽고 다음에 질문을 던지면 답변을 하는 녀석으로 생각했지만 KorQuad의 Training 셋을 보면서 의문을 갖게 되었다. 해당 데이터는 문장, 질문, 답변이 세트로 되어있었기 때문이다. 그러다보니 "이 training set은 어떻게 만들지?"라는 의문이 생겼고 저 부분이 기계독해를 만드는데 가..