딥러닝 64

logistic regression에서 loss를 binary cross entropy를 쓰는이유

로지스틱 회귀에서는 loss를 MSE를 쓰지않고 BCE(Binary Cross Entropy)를 쓴다. 그렇다면 왜 로지스틱 회구에서는 BCE loss를 쓰는지 알아본다. 1. MSE 위와같이 loss를 MSE를 사용하고 gradient descent meathod를 이용하여 최적값을 찾으려고 한다. 이때 loss function은 아래와 같다. 이때 문제는 바로 좌우측에 평평한 부분이다. 모양이 너무 평평해서 기울기를 따라 내려가야 하는데, 기울기가 거의 없어서 거의 내려가질 않는 것이다. 이를 convex하지 않다, 즉 볼록하지 않다고 한다. 이를 빨간색으로 표시하면 아래와 같다. (학습이 잘되는 부분은 초록색으로 표시) 2. BCE 이번엔 위와같이 Loss를 bce를 사용했을때를 본다. bce를 사..

딥러닝을 이용한 비선형 분류문제 해결

0. XOR게이트 문제 AND, OR, NAND게이트와는 다르게 XOR게이트는 선형식으로 구분할 수가 없다. 따라서 nand게이트(not and), or게이트, and게이트를 함께 이용하여 mlp모델을 통해 xor게이트를 만든다. 1. 구조 구조는 위와같다. 첫번째 레이어에 NAND,OR 게이트를 쌓고, 두번째 레이어에 AND게이트를 쌓는다. 그러면 xor게이트를 만들 수 있다. 2. 선형모델을 이용하여 비선형 모델 만들기 왼쪽의 선형모델 두개를 레이어로 쌓으면 오른쪽의 비선형모델을 만들 수 있다. * 출처 : 패스트캠퍼스 수학적으로 접근하는 딥러닝 올인원 패키지 Online.

logistic regression 에서 sigmoid함수를 쓰는 이유

0. 문제 50이상이면 1, 50이하이면 0을 갖는 위와 같은 데이터가 있다. 이 데이터를 학습해서 특정 점수를 받았을 때 1을 갖는지 0을 갖는지 분류해주는 모델을 만들어 본다고 하자. 1. linear regression 선형회귀분석으로도 모델을 만들 수 있다. 예측 모형을 만들고, x값을 넣었을 때 y값이 0.5이상이면 1, 0.5이하이면 0을 가지게 한다.(decision boundary) 하지만 선형회귀분석을 통해 모델을 만들면 outliar에 취약해진다. 위 사진과 같이 outliar가 없을때(왼쪽 초록선)보다 outliar가 있을때 기울기가 급격하게 낮아지면서 잘못 분류되는 데이터가 매우 많아지게 된다. 2. logistic regression outliar의문제는 logistic regre..

3. 삼성전자 주식 데이터 분석 - 예측하기(lstm,RNN모델)

시리즈 삼성전자 주식데이터를 분석하고 예측한다. 1. 삼성전자 주식 데이터 분석 - 분석하기 => sosoeasy.tistory.com/332 2. 삼성전자 주식 데이터 분석 - 예측하기(MLP 모델) => sosoeasy.tistory.com/333 3. 삼성전자 주식 데이터 분석 - 예측하기(lstm, RNN 모델) 1~3 이전과 동일 아래 3가지 목차는 ( 2. 삼성전자 주식 데이터 분석 -예측하기(MLP 모델) => sosoeasy.tistory.com/333 ) 과 동일 1. 주가 데이터 받아오기 2. 필요한 패키지 받아오기 3. 데이터 불러오기 4. 데이터 전처리 0. 필요한 라이브러리 받아오기 from tensorflow.keras import models from tensorflow.ker..

2. 삼성전자 주식 데이터 분석 - 예측하기(MLP모델)

시리즈 삼성전자 주식데이터를 분석하고 예측한다. 1. 삼성전자 주식 데이터 분석 - 분석하기 => sosoeasy.tistory.com/332 2. 삼성전자 주식 데이터 분석 - 예측하기(MLP 모델) 3. 삼성전자 주식 데이터 분석 - 예측하기(lstm, rnn 모델) => sosoeasy.tistory.com/334 1. 주가데이터 받아오기 #주가 데이터를 받아오기 위한 패키지 설치 !pip install pandas_datareader !pip install sklearn 2. 패키지 받아오기 datetime : 날짜와 시간을 조작하는 클래스 제공 pandas_datareader : 웹 상의 데이터를 DataFrame 객체로 만드는 기능 제공 pandas : 데이터처리를 위한 라이브러리 numpy ..

1. 삼성전자 주식데이터 분석 - 분석하기

시리즈 삼성전자 주식데이터를 분석하고 예측한다. 1. 삼성전자 주식 데이터 분석 - 분석하기 2. 삼성전자 주식 데이터 분석 - 예측하기(MLP 모델) => sosoeasy.tistory.com/333 2. 삼성전자 주식 데이터 분석 - 예측하기(lstm, rnn 모델) => sosoeasy.tistory.com/334 1. 필요 라이브러리 다운로드 # 데이터를 가져와 편리하게 다룰 수 있도록 PANDAS 패키지를 설치 !pip install pandas_datareader # 필요한 라이브러리 다운로드 from datetime import datetime import pandas_datareader.data as wb 2. 데이터 불러오기 # 시작날짜와 종료날짜 정하기 start = datetime(2..

코랩을 이용하여 doc2vec 모델 학습하기

0. 서론 gensim 라이브러리를 이용하여 doc2vec모델을 만들어보았다. 위키피디아 데이터를 이용하여 doc2vec모델을 학습시켰다. 처음으로 시도한 방법은 로컬에서 클래스를 만들고, 한줄씩 yield하면서 모델을 학습시키는 것이였다. (소스코드1) 1. 소스코드1 (한번에 학습하는 방법.) class Doc2VecSentences: def __init__(self,path): self.path=path self.keyDict={} def clean_str(self,text): pattern = '([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)' # E-mail제거 text = re.sub(pattern=pattern, repl='', string=text) ..

naver faceRecognition 사용하기

0. 서론 naver의 face recognition api를 사용해본다. 사진을 입력받으면 얼굴의 개수, 눈코입의 위치, 추정되는 나이 성별 감정 등의 정보를 분석해서 반환한다. 1. application 등록 sosoeasy.tistory.com/329 여기서 1.application이랑 똑같이하면된다. 종류만 face recognition으로.. 2. 코드 (1) id와 secret, 파일경로를 입력한다. import os import sys import requests # id, secret 입력 client_id = "본인의 id값 입력" client_secret = "본인의 secret값 입력" # 파일경로 설정 files = {'image': open('파일경로 입력', 'rb')} (2) ..

naver pose estimation api 사용하기

0. 서론네이버 pose estimation api를 이용하여 사진속 사람의 신체 각부위의 위치를 찾는다. 1. application 등록(1) 로그인후 우측위에있는 콘솔창으로 간다 (2) 왼쪽에 products&services로 가서 posesti mation이 있는 AI NAVER API를 누른다 (3) 그러면 왼쪽에 ai.naver.api가 생기고 그밑에 appication탭으로 들어간다. 들어가서 파란색바탕의 applicaiton등록 버튼을 누르고 application을 등록하면 pose estimation박스가 만들어진다.그리고 박스안에 인증정보를 누르면 client key와 client_secret을 확인할 수 있다. 2. 코드(1) 1에서 발급받은 id와 secret을 입력하고, 파일경로를 ..

konlpy 라이브러리를 이용한 형태소 분석

0. 서론 konlpy라는 라이브러리가 있다. 한국어 형태소분석을 할 수 있는 여러개의 클래스가 모여있는 라이브러리이다. 공식 사이트는 여기 konlpy-ko.readthedocs.io/ko/v0.4.3/ 라이브러리를 임포트해서 사용해보도록 한다. 1. 라이브러리 import #konlpy에 있는 클래스 모두 import from konlpy.tag import * import re import pandas as pd import requests from bs4 import BeautifulSoup 5개의 클래스가 있고, 출처는 아래와 같다. Hannanum: 한나눔. KAIST Semantic Web Research Center 개발. http://semanticweb.kaist.ac.kr/hannan..

gensim 라이브러리를 이용하여 Doc2vec모델 학습하기 - 2. class iter활용

1. train함수 이용하기 : sosoeasy.tistory.com/326 2. class를 만들고, iter함수를 이용하여 객체를 만드는식으로 학습하기 class의 iter함수를 이용하여 doc2vecr객체를 생성함과 동시에 모델을 학습시키는 방법. 아래와 같은 내용이 들어있는 txt파일을 저장하고 읽어오는 식으로 진행된다. 1. 라이브러리 다운 from gensim.models import Doc2Vec from gensim.models.doc2vec import TaggedDocument from konlpy.tag import Okt 2. 클래스 생성 파일에서 한줄씩 문장을 읽으면서 형태소분해하고, tagged list type으로 변환하여 yield하는식으로 진행된다. class Doc2Vec..

gensim 라이브러리를 이용하여 Doc2vec모델 학습하기 - 1.train function 이용

1. train함수 이용하기 2. class를 만들고, iter함수를 이용하여 객체를 만드는식으로 학습하기 : sosoeasy.tistory.com/327 1. 라이브러리 다운 okt: 한국어 형태소 분석을 위한 라이브러리 from gensim.models.doc2vec import Doc2Vec, TaggedDocument from konlpy.tag import Okt 2. 데이터 전처리 taggedDocument 타입으로 만들어야 학습이 가능하다. 이때 형태소 단위로 문장을 분해해야 의미적으로 학습하기 좋다. #데이터 전처리 okt=Okt() #형태소 분해 객체 생성 data = ["나는 학교에 간다", "나는 친구를 만난다", "나는 영화보러 간다", "영화가 재밌다", "나는 공부를 하러 왔다"..

gensim라이브러리로 학습한 doc2vec모델의 함수들

1. 모델 불러오기 불러온 모델은 문서별로 번호가 태그되여 있습니다. from gensim.models import Doc2Vec #모델 저장 doc2vec_model=Doc2Vec.load('model/doc2vec_morph.model') 2. 학습한 문서중 비슷한 문서 찾기 # a(태그번호 or 벡터화된 문서)문서와 비슷한 문서를 b개 리턴한다. a="276" b=5 for i in doc2vec_model.docvecs.most_similar(a,topn=b): print(i) ('76889', 0.8220891952514648) ('148', 0.816669762134552) ('52004', 0.8151654005050659) ('155489', 0.8135135769844055) ('4188..

단어를 표현하는 방법. 원핫벡터와 워드임베딩

단어를 분석하기 위해선 문자를 정형데이터로 바꿔야 한다. 이때 사용하는 기법이 원핫벡터와 워드임베딩 1. 원핫벡터 문서에 나오는 모든 단어들(코퍼스)의 개수만큼 차원을 가지고, 해당단어만 1, 나머지는 0을 갖는 행렬로 표현 ex) 나는 강아지를 좋아한다. 나는 강아지를 좋아한다 나는 1 0 0 강아지를 0 1 0 좋아한다 0 0 1 나는 => [1,0,0] 강아지를 => [0,1,0] 좋아한다 => [0,0,1] * 하지만 문서의 양이 커지고, 단어의 수가 많아지면 차원이 너무 커지는 문제점이있다. 따라서 워드 임베딩을 통해표현한다 희소표현(원핫벡터) -> 분산표현(워드임베딩) 2. 워드임베딩 (1) 인풋단어 원핫인코딩 (2) 임베딩(첫번째 가중치 곱하기) (3) 인베딩한단어(벡터)들의 평균구하기 (4..