목록분류 전체보기 (97)
Stack Building
파이썬으로 챗봇 만들기 https://www.slideshare.net/KimSungdong1/20170227-72644192 특정 플랫폼을 사용하지 않고 파이썬으로 챗봇을 개발하는 경우에 대한 슬라이드. 딥러닝을 사용하는 예시도 포함되어 있고, 품사별로 분류하여 의도를 파악하는 방법을 설명하고 있음. Levenstein Distance https://lovit.github.io/nlp/2018/08/28/levenshtein_hangle/ 오타 처리하는 알고리즘으로 사용했음. 교정 비용을 계산한다. 챗봇 동향 https://kmkidea.tistory.com/47 간단하고 이해하기 쉬운 방향으로 챗봇에 사용되는 기술들을 짚어준 블로그. 문장 임베딩 (Sent2Vec, fastText) http://do..
예제 코드 github https://github.com/line/line-bot-sdk-python 플라스크 서버 기준 app.py https://github.com/line/line-bot-sdk-python/blob/master/examples/flask-kitchensink/app.py 메시지 타입과 그 예제 https://developers.line.biz/en/docs/messaging-api/message-types/#confirm-template 시뮬레이터 (플렉스 메시지) https://developers.line.biz/console/fx/ FAQ https://developers.line.biz/en/faq/
[머신러닝] supervised learning 정답이 있는 트레이닝 데이터로 트레이닝 하여 label(cat/dog/mug/hat)을 나눔(regression;연속된 값중 답 찾기, classification;pass/nonpass,학점과 같은 개수가 정해진 답 찾기) unsupervised learning 정답없는 데이터를 받아 어떤 패턴에 따라 데이터를 나눔(google news grouping, clustering) [머신러닝 프로세스] training data set -> ML algorithm -> (training) -> (model) -> 특정 x input, 미지의 y output [tensorflow] tensor는 노드를 나타내고 이런 노드의 흐름으로 머신러닝을 하기때문에 이름이 te..
분류모델: 어떤 정해진 값 중에서 하나의 결과를 도출해내는 것 여러 선택지 중 하나의 결과를 도출하는 것 kNN 모델의 원하는 결과는 방대한 데이터가 어떤 분류에 속해있는가를 나타내며, SVM 역시 이와 마찬가지로 어떤 분류에 속해있는가를 선별하는 알고리즘입니다. 즉 알고리즘의 방식이나 접근 형태가 다른 것이지, 궁극적으로 목표하고자 하는 바는 동일하다고 보시면 됩니다. (1) 퍼셉트론(Perceptron)의 정의 및 구성 서포트 벡터 머신을 다루는데 왠 시작부터 퍼셉트론인가 의문이 갈 수 있을 것입니다. 그 이유는, 서포트 벡터 머신(SVM)의 구현이 퍼셉트론의 개념을 가져와서 분류를 하는 방식이기 때문입니다. 그렇기 때문에 SVM을 이해하기 위해서는 먼저 퍼셉트론에 대한 이해가 선행되어야 합니다. 퍼..
약한 학습기 여러 개를 결합하여 하나의 학습기보다 좋은 성능을 보이고자 하는 기법이 '앙상블'이다. 동일한 학습기를 결합할 경우 앙상블이라고 하고, 다른 학습기를 결합할 경우 '스태킹'이라고 본다. 앙상블을 사용하면 학습에서 흔히 나타나는 두 가지 오류("높은 bias로 인한 Overfitting"과 "높은 Variance로 인한 Underfitting")를 개선할 수 있다. 1. 배깅 (Bootstrap Aggregating) ① 대상 데이터를 복원 랜덤 샘플링함 ② 학습 후 분류함 ③ 범주형인 경우 Voting, 연속형인 경우 Average로 집계 특징: 샘플을 여러 번 뽑아 각 모델을 병렬 학습한다. 대표적인 알고리즘은 Random Forest. 일반적인 모델을 만드는 것에 집중한다. 2. 부스팅 ..
1. TensorFlow와의 비교 텐서플로우 파이토치 Define and Run 패러다임 Define by Run Static Graph 그래프 형태 Dynamic Graph Tensorboard 시각화 Tensorboard (v 1.1) Google Brain 개발사 Facebook A.I. Research 요약하자면, 텐서플로우가 흐름을 만들고 흘려보내는 스타일이라면, 파이토치는 한 줄 실행을 할 때마다 바로 생성되어 값을 뱉는 스타일이라고 볼 수 있다. 2. Numpy와의 비교 요새의 파이토치에서는 Variable 부분을 Tensor로 통일했다고 한다. 위 코드는 실제로 딥러닝을 수행하는 코드라고 하기보다 randn으로 가우시안(정규) 분포를 따르는 난수를 생성하여 임의로 돌려보는 코드에 가깝다. ..
딥러닝이란 머신러닝의 하위 개념 중 하나로, 사람을 모방(신경망)한 알고리즘 또는 엄청난 연산량을 수행하는 알고리즘을 말한다. 비전, 오디오 등에서 주목할 만한 성과를 내고 있다. 증기 기관과 역학 이론 등에서 알 수 있다시피 많은 경우 현상(응용된 발명품)이 먼저 등장하고 이론이 정리되었다. 마찬가지로 현재 딥러닝은 도움이 되는 결과는 내놓고 있지만 정확한 과정이나 이유는 밝혀지지 않고 있다. 딥러닝은 머신 러닝의 특정한 한 분야로서 연속된 층layer에서 점진적으로 의미 있는 표현을 배우는 데 강점이 있으며, 데이터로부터 표현을 학습하는 새로운 방식입니다. 딥러닝의 딥deep이란 단어가 어떤 깊은 통찰을 얻을 수 있다는 것을 의미하지는 않습니다. 그냥 연속된 층으로 표현을 학습한다는 개념을 나타냅니다..
1. 손실 함수(Loss Function)를 코드로 구현하면? (1) Softmax def softmax(X): exps = np.exp(X) return exps / np.sum(exps) (2) Stable Softmax def stable_softmax(X): exps = np.exp(X - np.max(X)) return exps / np.sum(exps) (3) Cross-Entropy def cross_entropy(X,y): """ X is the output from fully connected layer (num_examples x num_classes) y is labels (num_examples x 1) Note that y is not one-hot encoded vector. I..
1. 활성 함수는 왜 쓰는가? 딥러닝 네트워크에서는 노드에 들어오는 값들에 대해 곧바로 다음 레이어로 전달하지 않고 주로 비선형 함수를 통과시킨 후 전달한다. 이때 사용하는 함수를 활성화 함수라고 부른다. 값에 따라 이 값을 활성화할지 비활성화할지 정하는 셈임. 여기서 주로 비선형 함수를 사용하는 이유는 선형함수를 사용할 시 층을 깊게 하는 의미가 줄어들기 때문이다. 선형함수인 h(x)=cx를 활성화함수로 사용한 3층 네트워크를 떠올려 보세요. 이를 식으로 나타내면 y(x)=h(h(h(x)))가 됩니다. 이는 실은 y(x)=ax와 똑같은 식입니다. a=c3이라고만 하면 끝이죠. 즉, 은닉층이 없는 네트워크로 표현할 수 있습니다. 뉴럴네트워크에서 층을 쌓는 혜택을 얻고 싶다면 활성화함수로는 반드시 비선형 ..
https://blog.naver.com/21ahn/221329219163 [python] 대표적인 크롤링 3가지(html, Ajax, JavaScript) (Ask Django) 출처 AskDjangohttps://www.askcompany.kr/vod/crawling/127/ https://askdjango.git... blog.naver.com 요약 1. HTML BeautifulSoup으로 파싱해서 얻어오기 2. Ajax 랜더링 Network에서 데이터 주소 가져오기 3. JavaScript 소스 가져와서 정규표현식으로 처리하기 4. 그 외 Selenium 사용