프로필사진

IT Anthology 30

[밑러닝] 손글씨 숫자 인식으로 해보는 간단한 인공신경망 예측(feat. MNIST 데이터셋)

* 이 글은 책을 읽으며 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 목차 학습과 예측 MNIST 데이터셋 인공신경망 구축 배치 처리 1. 학습과 예측 기계학습의 문제 해결은 두 단계를 거친다. 첫번째는 학습이고, 두번째는 예측이다. 학습의 과정은 적당한 가중치를 찾는 과정이고, 예측의 과정은 그렇게 찾아낸 적당한 가중치를 대입해서 새로운 데이터의 정답이 뭘지 찾아내는 과정이다. 학습의 과정은 간략하게 다음과 같다. 데이터셋 파악 훈련용 데이터와 테스트용 데이터로 나누기 인공신경망 구축 적당한 가중치 찾기 위의 과정을 거쳐 찾아낸 적당한 가중치를 대입한다. 예측의 과정은 다음과 같다. ..

[밑러닝] 인공신경망 구현을 위해 알아야할 것들 (활성화 함수와 소프트맥스)

* 이 글은 책을 읽으며 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 목차 퍼셉트론 식의 변형 활성화 함수(Activation function) 3층 신경망 출력층(Output Layer) 1. 퍼셉트론 식의 변형 저번 포스트부터 읽어온 분들은, 그래서 인공신경망이 대체 뭔데? 하는 마음으로 이 포스트를 열었을 것이다. 그리고 또 저번 포스트를 착실하게 읽었다면, 왠지 아래의 수식이 눈에 익을 것이다. $$ y = \begin{cases} 0\ (b + w_1x_1 + w_2x_2 \le 0)\\ 1\ (b + w_1x_1 + w_2x_2 > 0) \end{cases} $$ 그래, 그 ..

[밑러닝] XOR 문제의 해결, 층 쌓기

* 이 글은 책을 읽으며 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 목차 XOR 문제 리마인트 XOR 문제 해결 다층 퍼셉트론 (multi-layer perceptron) 1. XOR 문제 리마인드 지난 포스트에서, 풀기 어려운 난제에 대해 이야기한 바가 있다. 문제를 풀기에 앞서, 문제가 무엇인지 리마인드를 해보자. AND, NAND, OR 게이트 등은 2차원의 공간 상에 표현했을 때, 하나의 선만으로 빨간 동그라미와 파란 세모와의 구역을 구분지을 수 있었다. 예를 들면, 아래는 OR 게이트를 시각화한 것이다. 하지만 XOR 게이트는 하나의 선만을 가지고 구분지을 수가 없었다. 이것..

[밑러닝] 퍼셉트론(perceptron), 인공신경망의 기원

* 이 글은 책을 읽으며 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 목차 퍼셉트론(perceptron)이란 AND, NAND, OR, XOR 게이트 퍼셉트론의 구현 XOR 문제 1. 퍼셉트론(perceptron)이란 퍼셉트론은 인공신경망의 아이디어를 제공한 알고리즘이다. 퍼셉트론을 요약하자면, 정보(신호)가 유효한지 아닌지 판가름하는 알고리즘이다. 내가 원하는 기준치($\theta$) 이상으로 정보(신호)가 세게 들어오면 '1(유효함)'을 내놓고, 그렇지 않으면 '0(유효하지 않음)'을 내놓는다. 이를 식으로 나타내면 다음과 같다. $$ y=\begin{cases} 0\ (w_1x_1..

자연어처리(NLP) 직무 면접 대비용 개념 한 줄 정리

※무단 사용 및 펌을 절대 금지합니다 이 페이지에서만 봐주세요.※ 하나 하나 손으로 기입한 것이어서 잘못된 내용이나 오타가 있을 수 있습니다 댓글로 제보해주세요 분야 용어 용어 풀이 텍스트 전처리 토큰화 Tokenization 언어를 한 단위의 의미를 가지는 문자열로 쪼개는 과정이다. 토큰화에는 문장 토큰화, 단어 토큰화 등이 있다. 영어는 nltk, 한국어는 konlpy를 많이 쓰며, bert의 영향으로 BPE 방식의 SentencePiece 토크나이저도 많이 사용된다. 어간 추출 Stemming 어간(stem)을 추출하는 작업으로, 룰 기반으로 작동하는 경우가 많다. 어미나 조사를 제거하여 준다. 표제어 추출 Lemmatization 표제어를 추출하는 작업으로, 사전에 실리는 대표어로 대체해주는 작업..

데이터 관련 직무 면접 대비용 개념 한 줄 정리

※무단 사용 및 펌을 절대 금지합니다 이 페이지에서만 봐주세요※ 하나 하나 손으로 기입한 것이어서 잘못된 내용이나 오타가 있을 수 있습니다 댓글로 제보해주세요 분야 용어 용어 풀이 머신러닝 일반 머신러닝 Machine learning (기계학습) (톰 미첼의 정의에 따르면) 컴퓨터가 어떤 작업(Task, T)을 하는 데 있어 경험(Experience, E)으로부터 학습하여 성능(Perfomance measure, P)을 향상시키는 것이다. 딥러닝 Deep learning 머신러닝의 한 분야로, 심층 신경망을 이용하여 댜량의 데이터에서 표현되는 핵심을 찾아내어 일반화하고, 이것을 새로운 데이터에 대해 예측하는 데 사용하는 기술이다. 머신러닝의 종류 지도학습(supervised learning) : 데이터에..

SQL 명령문 총정리

※무단 사용 및 펌을 절대 금지합니다 이 페이지에서만 봐주세요※ 사용되는 곳 명령어 정의 사용 예시 관련 명령어 및 참고 사항 테이블에서 데이터 검색 SELECT 질의, 쿼리 SELECT 열명 FROM 테이블명 '*' : 열명에 기입 시 모든 열 반환 WHERE 조건에 만족하는 행만 반환 SELECT col1, col2 FROM 테이블명 WHERE 조건식 비교연산자('=', '', '' ...) IS NULL / IS NOT NULL AND / OR / NOT IN LIKE 특정 패턴과 일치하는 문자열 찾기 SELECT 열명 FROM sampletable WHERE text LIKE '%SQL%' '%' : 임의의 문자열, 빈 문자열에도 매치 '_' : 임의의 문자 하나!만 의미 정렬 ORDER BY 결..

[밑러닝] 1.6 matplotlib, 파이썬의 시각화 툴

* 이 글은 책을 읽으며 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 목차 matplotlib의 정의 그래프 그려보기 사진 재현 1. matplotlib의 정의 matplotlib은 파이썬에서 쓰이는 시각화 툴이다. 그래프 그리기에 탁월하다. (이외에도 seaborn이라는 툴이 있는데 이는 빅데이터를 시각화하기에 적당한 툴이다) 일단은 matplotlib에 대해 서술해보도록 하자. matplotlib은 외부 라이브러리고, 흔히 plt로 줄여서 사용한다. import matplotlib.pyplot as plt 2. 그래프 그려보기 앞서 배운 넘파이(numpy)를 이용해 간단한 그래프를 ..

[밑러닝] 1.5 넘파이(numpy as np)

* 이 글은 책을 읽으며 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 목차 넘파이(numpy)의 정의 넘파이(numpy)의 연산 넘파이(numpy)의 N차원 배열 브로드캐스트(broadcast) 원소 접근 1. 넘파이(numpy)의 정의 넘파이(numpy)는 벡터나 행렬 연산을 빠르게 하는 도구다. 다르게 말하자면, 배열을 다루는 도구이다. 넘파이는 한 개 이상의 원소를 가진 배열 형태라면 모두 "넘파이"라는 그릇에 담아버린다. 앞으로 과학적인 분석이나 딥러닝을 할 때 심심찮게 볼 수 있을 것이다. numpy는 다들 풀네임 쓰기 귀찮아해서 관용적으로 np라고 쓴다. 외부 라이브러리이기 ..

NLP 학습을 위한 기본적인 환경 구축 (Python 설치부터)

---개요--- Python 3.7 Jupyter Lab Git Kraken Stackedit Python 많은 사람들이 (실제로 배움의 현장에서도) 파이썬을 시작하기 위해서 아나콘다부터 깔고 시작한다. 아나콘다는 가상환경 변환이 쉽다는 점과, 패키지 관리가 쉽다는 점 때문에 많이 사용된다. 하지만 실제로 NLP를 학습해보면 아나콘다에 없는 패키지를 pip(파이썬 관련 패키지 설치 툴)을 이용하여 깔아야 할 일이 많다. 즉, 어차피 아나콘다를 거치지 않는 것이다. 사용하지 않는다면 용량도 큰 아나콘다를 굳이 유지할 필요가 없다. 이에 파이썬만 깔아서 개발 환경을 설정하고자 한다. Python 설치 (@ Window) 파이썬 홈페이지에서 Downloads로 들어가 최신 Release가 무엇인지 확인한다. ..

IT Anthology/how-to 2019.09.03