개발 335

추천

실제 우리가 사용하는 서비스들은 개인화된 정보들을 나타납니다. 구글, 넷플릭스 등등 내가 원하는 정보를 가장 위에 올려주게 프로그래밍 되어있습니다. 이 것을 어떻게 하는지 잠깐 알아보면 1)협업 필터링 2)콘텐츠 기반 필터링 이 있습니다. 1)협업 필터링의 경우 내가 어떤 영화를 보고 싶은데, 이 영화가 내가 좋아할지를 알 수가 없습니다. 때문에, 나와 비슷한 취향을 가지고 있는 친구의 영화 취향을 참고해서 선택을 한다면, 내 취향에 딱 맞는지 안 맞는지 높은 확률로 알 수 있습니다. 2)콘텐츠 기반 필터링 의 경우, 내가 고른 영화와 비슷한 장르의 영화는, 내가 더 좋아하지 않을까 라고 예측하는 것이 콘텐츠 기반 필터링입니다.

군집화 용어

군집화를 공부하다보면 새로운 용어가 많이 등장합니다. Mean Shift 라는 애가 나오는데, 데이터를 중심으로 이동하는 방법입니다. bandwidth의 크기에 따라, 군집화 영향도가 큰데, 오버피팅을 방지하기 위해 적당한 bandwidth를 사용해야 합니다. 그리고 KDE(Kernel Density Estimation)인데, 군집화에서 밀도를 추측하는 방법입니다. 또한 모수적 방법과 미보수적 방법이라고 있는데, 어떠한 표본의 경우에 정규분포를 띈다고 가정했을 때, 이 표본이 굉장히 작다면, 정규분포를 띄지 않습니다. 이 때 모수적 방법을 사용하지 않는 비모수적 방법이라는 것을 사용해서 추정을 합니다. 가우시안 분포 라는 것도 나오는데, 정규분포의 다른 말 입니다. GMM(Gaussian Mixture ..

군집화(K-Means)

군집화(Clustering)에 대해서 알아보겠습니다. 이름에서 보이다시피, 어느 그룹에 묶는다고 생각하시면 될 것 같습니다. 그러면 군집화(Clustering)과, 분류(classification)이 뭐가 다른가? 에 대한 의문이 드실 수도 있습니다. 군집화의 경우 Label이 없는 것으로 나눕니다. 그러니깐 컴퓨터에게 이런 것이라고 feature를 정해주지 않고, 알아서 비슷한 것들 끼리 묶는다 라고 생각해주시면 됩니다. 실생활에서는, 고객을 세분화할 때 사용합니다. 고객을 세분화하여 마케팅 전략을 짜거나 이미지들의 특성을 세분화하여 나눠서 사용합니다. K-means알고리즘의 경우 각 클러스트와 거리 차이의 분산을 최소화하는 방식으로 동작됩니다. 장점 - 알고리즘이 간단하고 대용량 데이터에 적용이 용이..

Tensorflow lite

텐서플로우 라이트에 대해서 알아보겠습니다. 이름에서 알 수 있듯이 텐서플로우의 가벼운 버전? 입니다. 그러면 이게 왜 필요한가... 에 대한 의문이 바로 드는데 성능이 조금 떨어지는 디바이스(ex 모바일 기기)에서는 기존에 텐서플로우를 돌리면 퍼포먼스가 굉장히 떨어지겠죠? 때문에, 텐서플로우 라이트라고 조금 가벼운 버전으로 빌드해서 모바일 기기에 사용합니다. https://www.tensorflow.org/lite TensorFlow Lite TensorFlow Lite는 기기 내 추론을 위한 오픈소스 딥 러닝 프레임워크입니다. www.tensorflow.org

개발/AI 정리 2020.02.16

Random Forest

랜덤 포레스트(Random Forest)에 대해서 알아보겠습니다. 랜덤 포레스트는 다수의 결정 트리를 학습하는 앙상블 방법입니다. 여기에서 처음보는 단어가 결정트리와, 앙상블 방법 이라는 것이 나옵니다. 자, 이게 뭔지 한번 보겠습니다. 결정트리란 의사 결정 규칙과 그 결과들을 트리 구조로 도식화한 의사 결정 자원 도구의 일종입니다. 쉽게 말하면, 밖에 나가서 운동을 하는데, 날씨가 좋은지 안 좋은지 햇빛이 있는지 바람이 부는지 등에 여러 조건들을 검토합니다. 앙상블학습이라는 것을 무엇일까요? 무슨 요리프로그램에서 앙상블을 이룬다 이런 말을 들어본 것 같기도 한데, 더 좋은 성능을 얻기 위해 여러가지 학습 알고리즘을 이용하는 것입니다. 참조 [1] - https://ko.wikipedia.org/wiki..

개발/AI 정리 2020.02.12

Hash Table Python

이 글의 참조본입니다. 해시 테이블을 파이썬으로 구현해본 것입니다. Hash Table implementation in Python [Data Structures & Algorithms] This article deals with implementing Hash Table using Python programming language. Hash Table is a data structure where data are stored in an associative manner (in key, value format). The key/inde… blog.chapagain.com.np key-value형태로 dictionary를 사용해서 저장할 수 있습니다. country_code = {'25': 'USA', '..

개발/잡다개발 2020.02.11

Regularized Linear Regression

규제 선형회귀(Regularized Linear Regression)에 대해서 알아보겠습니다. 과적합(overfitting)때문에, 과적합을 방지해주기위해 여러가지 방법을 사용합니다. 그 중에 릿지회귀, 라쏘회귀를 사용합니다. 릿지(Ridge) 회귀 - L2-Norm을 이용한 회귀 라쏘(Lasso) 회귀 - L1-Norm을 이용한 회귀 참조 [1] - https://ratsgo.github.io/machine%20learning/2017/05/22/RLR/ [2] - https://kimlog.me/machine-learning/2016-01-30-4-Regularization/ [3] - https://hwiyong.tistory.com/93

개발/AI 정리 2020.02.10

과소적합과 과적합(Overfitting, underfitting)

과소적합과 과적합에 대해서 알아보겠습니다. 머신러닝에서 느낌상 과소적합은 학습이 부족한 느낌이고, 과적합 같은 경우에는 학습이 많이 된 느낌입니다. 그러면 학습이 많이 된 것이 왜 나쁜가? 좋은 것 아닌가 라고 할 수 있는데 아래의 그림을 보고 설명드리겠습니다. Degree1 을 보면은 학습이 조금밖에 안돼서 주황색 선을 따라 학습 곡선이 그려지지 못한 겁니다. 이 경우에는 학습을 더 해야겠죠? Degree4 는 주황색 선을 잘 따라가면서 학습이 잘 되었습니다. Degree15 를 보면 파란색 점을 잘 따라서 찍기는 했지만, 학습하길 원하는 주황색 선의 그래프와는 굉장히 많이 벗어났습니다. 이 때문에, 오버피팅을 방지하고 가장 적합한 만큼만 학습을 하는 방법이 필요합니다. --참조 [1] - https:..

GCP Flask 배포

일단은 GCP 콘솔로 들어갑니다. https://console.cloud.google.com/home/dashboard?hl=ko&project=evocative-lodge-266710 Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 그리고 나면, Computer Engine에 VM 인스턴스로 가서 인스턴스를 만들어줍니다. 만들 때 방화벽에 HTTP트래픽 허용 해줘야합니다. 그리고 난 후에, 파이썬 파일을 하나 만들어주고 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): ret..

개발/잡다개발 2020.01.30