전체 글 708

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를 사용하면 Lo..

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

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 regressionoutliar의문제는 logistic regressio..

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

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

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

시리즈삼성전자 주식데이터를 분석하고 예측한다.1. 삼성전자 주식 데이터 분석 - 분석하기 => sosoeasy.tistory.com/3322. 삼성전자 주식 데이터 분석 - 예측하기(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/3332. 삼성전자 주식 데이터 분석 - 예측하기(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(2010,11,1)..

코랩을 이용하여 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..

naver faceRecognition 사용하기

0. 서론naver의 face recognition api를 사용해본다. 사진을 입력받으면 얼굴의 개수, 눈코입의 위치, 추정되는 나이 성별 감정 등의 정보를 분석해서 반환한다. 1. application 등록sosoeasy.tistory.com/329 여기서 1.application이랑 똑같이하면된다. 종류만 face recognition으로.. 2. 코드(1) id와 secret, 파일경로를 입력한다.import osimport sysimport 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에 있는 클래스 모두 importfrom konlpy.tag import *import reimport pandas as pdimport requestsfrom bs4 import BeautifulSoup5개의 클래스가 있고, 출처는 아래와 같다.Hannanum: 한나눔. KAIST Semantic Web Research Center 개발. http://semanticweb.kaist.ac.kr/hannanum/Kkma: 꼬꼬..

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

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

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

1. train함수 이용하기2. class를 만들고, iter함수를 이용하여 객체를 만드는식으로 학습하기 : sosoeasy.tistory.com/327 1. 라이브러리 다운okt: 한국어 형태소 분석을 위한 라이브러리from gensim.models.doc2vec import Doc2Vec, TaggedDocumentfrom 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=5for i in doc2vec_model.docvecs.most_similar(a,topn=b): print(i)('76889', 0.8220891952514648)('148', 0.816669762134552)('52004', 0.8151654005050659)('155489', 0.8135135769844055)('41881', 0.8119..

구글드라이브에 있는 파일 코랩으로 불러오기

구글 드라이브에 파일을 저장해놓고, 코랩에서 코드를 통해 파일을 읽어올 수 있다.내 구글 드라이브에 접근하기 위해 코랩에서 구글 드라이브 라이브러리를 다운받아야 한다. (1) 아래의 코드를 코랩에서 실행시킨다.from google.colab import drive drive.mount('/gdrive', force_remount=True) (2) 구글드라이브를 연동할 계정 인증하기(1)을 실행시키면 빈칸과 링크가 뜨고 그 빈칸에 인증코드를 입력하라는 안내문이나온다. 링크를 타고들어가서 코랩과 연동 할 구글계정으로 로그인 하면 인증코드가 나온다그 코드를 복사해서 빈칸에 붙여넣기하면 아래와 같이 마운트된다. (3) 드라이브의 경로드라이브의 경로는 '/gdrive/My Drive/' 부터 시작이다.여기서 da..

구글 코랩 시작하기 (셋팅, 파일만들기)

1. 들여쓰기 설정, 다크모드 설정 처음에 기본설정으로 테마는 화이트에 들여쓰기는 2로되어있는데, 들여쓰기는 4로하는게 편하고, 고수들은 모두 ide를 검은색으로 해놓고 쓰기 때문에 우리도 검은색으로 바꾸도록 한다. (1) 오른쪽 위에 설정버튼을 누른다 (2) 편집기 탭으로 들어가서 색상은 default dark로 바꿔주고, 들여쓰기는 4로 해준다. 2. 파일만들기 (1) 파일-새노트를 누르면 새 파일이 열린다. (2) 새 파일을 만들면 구글 드라이브에 colab Notebooks라는 파일이 생기고 거기에 저장이 된다. 형식은 ipynb.

pickle라이브러리를 이용하여 객체를 파일로 저장하기

1. 라이브러리 로드 import pickle 2. 피클형식으로 데이터 저장하기 user={'dong':29,'sung':19} #데이터 저장하기 # =>user.pickle라는 파일로 저장이 된다 with open('user.pickle','wb') as fw: pickle.dump(user, fw) 3. 피클형식의 데이터 파일 불러오기 # load data # =>user_loaded라는 변수에 저장이 된다 with open('user.pickle', 'rb') as fr: user_loaded = pickle.load(fr)