조대협 281

머신러닝의 과학습 / 오버피팅의 개념

머신러닝의 과학습 / 오버피팅의 개념 조대협 (http://bcho.tistory.com) 머신 러닝을 공부하다보면 자주 나오는 용어 중에 하나가 오버피팅 (Overfitting)이다. 과학습이라고도 하는데, 그렇다면 오버 피팅은 무엇일까? 머신 러닝을 보면 결과적으로 입력 받은 데이타를 놓고, 데이타를 분류 (Classification) 하거나 또는 데이타에 인접한 그래프를 그리는 (Regression) , “선을 그리는 작업이다.”그러면 선을 얼마나 잘 그리느냐가 머신 러닝 모델의 정확도와 연관이 되는데, 다음과 같이 붉은 선의 샘플 데이타를 받아서, 파란선을 만들어내는 모델을 만들었다면 잘 만들어진 모델이다. (기대하는) 언더 피팅 만약에 학습 데이타가 모자라거나 학습이 제대로 되지 않아서, 트레이..

딥러닝의 개념과 유례

딥러닝의 역사와 기본 개념조대협 (http://bcho.tistory.com)인경 신경망 알고리즘의 기본 개념 알파고나 머신러닝에서 많이 언급되는 알고리즘은 단연 딥러닝이다.이 딥러닝은 머신러닝의 하나의 종류로 인공 신경망 알고리즘의 새로운 이름이다. 인공 신경망은 사람의 두뇌가 여러개의 뉴론으로 연결되서 복잡한 연산을 수행한다는데서 영감을 받아서, 머신러닝의 연산을 여러개의 간단한 노드를 뉴론 처럼 상호 연결해서 복잡한 연산을 하겠다는 아이디어이다. 이 뉴런의 구조를 조금 더 단순하게 표현해보면 다음과 같은 모양이 된다. 뉴런은 돌기를 통해서 여러 신경 자극 (예를 들어 피부에서 촉각)을 입력 받고, 이를 세포체가 인지하여 신호로 변환해준다. 즉 신경 자극을 입력 받아서 신호라는 결과로 변환해주는 과정..

Docker Kubernetes의 UI

Docker Kubernetes UI 조대협 (http://bcho.tistory.com) 오늘 도커 밋업에서 Kubernetes 발표가 있어서, 발표전에 데모를 준비하다 보니, 구글 클라우드의 Kubernetes 서비스인 GKE (Google Container Engine)에서 Kubernetes UI를 지원하는 것을 확인했다. Google Container Service (GKE) GKE는 구글 클라우드의 도커 클라우드 서비스이다. 도커 컨테이너를 관리해주는 서비스로는 Apache mesos, Docker Swarm 그리고 구글의 Kuberenetes 가 있는데, GKE는 이 Kuberentes 기반의 클라우드 컨테이너 서비스이다. 대부분의 이런 컨테이너 관리 서비스는 아직 개발중으로 운영에 적용하기..

파이어베이스를 이용한 유니티 게임 로그 분석

파이어베이스를 이용한 유니티 게임 로그 분석 조대협 (http://bcho.tistory.com)모바일 로그 분석일반적으로 모바일 로그 분석은 클라우드 기반의 무료 솔루션을 이용하다가 자체 구축으로 가는 경우가 많다.클라우드 기반의 무료 로그 분석 솔루션으로는 구글 애널러틱스, 야후의 플러리, 트위터의 패브릭 그리고 구글의 파이어베이스 등이 있다.이런 무료 로그 분석 솔루션들을 사용이 매우 간편하고, 핵심 지표를 쉽게 뽑아 줄 수 있으며, 별도의 운영이 필요 없다는 장점을 가지고 있다.그러나 이런 클라우드 기반의 무료 솔루션의 경우에는 요약된 정보들만 볼 수 있고 또한 내가 원하는 지표를 마음대로 지정을 할 수 없기 때문에, 어느정도 서비스가 성장하고 팀의 여력이 되면 별도의 로그 수집 및 분석 솔루션을..

첫번째 게임을 만들어 보다

첫번째 게임을 만들어보다. 조대협 (http://bcho.tistory.com) 요즘 게임 개발이 워낙 인기 있는 분야이고, 유니티로 게임을 개발하기가 워낙 쉽다고 해서, 언젠가 한번 게임을 개발해봐야하겠다는 막연한 생각만 가지고 있었는데, 게임 로그 수집 및 분석을 테스트할 기회가 되서, 아예 게임을 만들어보기로 하였다. 유니티 개발환경의 편리함 대략 10월10일 부터 시작해서, 개발이 끝난게 대략 10월 말 경이니까는 2~3주 정도 걸린것 같다.유니티 개발이 처음이라서, 책부터 사보고 남는 시간 짬짬이 개발을 했는데, 아마 집중해서 했으면 일주정도면 되지 않았을까 한다. 유니티로 게임을 개발하면서, 먼저 느낀것은 개발 환경이 참 잘 짜야져 있다는 것이다. 객체를 정의한 후, 각 객체에 객체를 컨트롤하..

IT 이야기 2016.11.01

수학포기자를 위한 딥러닝-#4 로지스틱 회귀를 이용한 분류 모델

수포자를 위한 딥러닝#4 - 로지스틱 회귀를 이용한 이항 분류 문제의 해결조대협 (http://bcho.tistory.com) 1장에서 머신러닝의 종류는 결과값의 타입이 연속형인 Regression (회귀) 문제와, 몇가지 정해진 분류로 결과(이산형)가 나오는 Classification(분류) 문제가 있다고 하였다. 2,3장에 걸쳐서 회귀 문제에 대해서 알아보았고, 이번장에서는 로지스틱 회귀를 이용한 분류 문제에 대해서 알아보자. 이 글의 내용은 Sung.Kim 교수님의 “모두를 위한 딥러닝”(http://hunkim.github.io/ml/) 을 참고하였다. 여러 자료들을 찾아봤는데, 이 강의 처럼 쉽게 설명해놓은 강의는 없는것 같다. 분류 문제(Classification)의 정의분류 문제란 학습된 모..

수학포기자를 위한 딥러닝-#3 텐서플로우로 선형회귀 학습을 구현해보자

수포자를 위한 딥러닝 #3 - 텐서플로우로 선형회귀 학습을 구현해보자 조대협 (http://bcho.tistory.com) 앞에서 살펴본 선형 회귀(Linear regression) 머신 러닝 모델을 실제 프로그래밍 코드를 만들어서 학습을 시켜보자. 여러가지 언어를 사용할 수 있지만, 이 글에서는 텐서플로우를 기반으로 설명한다. 텐서플로우 개발 환경 셋업텐서 플로우 개발 환경을 설정하는 방법은 여러가지가 있지만, 구글 클라우드의 데이타랩 (datalab)환경을 사용하기로 한다. 텐서플로우 환경을 설정하려면 파이썬 설치 및 연관된 수학 라이브러리를 설치해야 하는 등 설치가 까다롭기 때문에, 구글 클라우드에서 제공하는 파이썬 노트북 (Jupyter 노트북 : http://jupyter.org/ ) 이 패키징..

수학포기자를 위한 딥러닝-#2 머신러닝 개념 이해

수포자를 위한 딥러닝 #2 - 선형회귀분석을 통한 머신러닝의 기본 개념 이해 조대협 (http://bcho.tistory.com) Linear Regression을 통한 머신 러닝의 개념 이해거리에 따른 택시 요금 문제머신러닝이란 무엇일까? 개념 이해를 돕기 위해서 선형 회귀 (Linear Regression)이라는 머신러닝 모델을 보자. 먼저 선형 회귀 (Linear regression)이 무엇인지 부터 이해를 해야 하는데, 쉽게 설명하자면 결과값 (output value)이 있고 그 결과값을 결정할 것이라고 추정되는 입력값 (input value)과 결과 값의 연관관계를 찾는 것이고 이를 선형 관계를 통해 찾는 방법이 선형 회귀 (Linear regression)이다. 예를 들어서 설명해보자, 택시 ..

수학포기자를 위한 딥러닝-#1 머신러닝과 딥러닝 개요

수포자를 위한 딥러닝#1 - 머신러닝의 개요조대협(http://bcho.tistory.com)들어가기에 앞서서 몇년전부터 빅데이타와 머신러닝이 유행하면서 이분야를 공부해야겠다고 생각을 하고 코세라의 Andrew.NG 교수님의 강의도 듣고, 통계학 책도 보고, 수학적인 지식이 부족해서 고등학교 수학 참고서도 봤지만, 도저히 답이 나오지 않는다. 머신 러닝에 사용되는 알고리즘은 복잡도가 높고 일반적인 수학 지식으로 이해조차 어려운데, 실제 운영 시스템에 적용할 수 있는 수준의 알고리즘은 석박사급의 전문가적인 지식이 아니면 쉽게 만들 수 없는 것으로 보였다. 예를 들어 인공지능망(뉴럴네트워크:Neural Network) 알고리즘에 대한 원리는 이해할 수 있지만, 실제로 서비스에 사용되는 알고르즘을 보니 보통 ..

파이어베이스 애널러틱스를 이용한 모바일 데이타 분석- #4 주피터 노트북을 이용한 파이어베이스 데이타 분석 및 시각화

파이어베이스 애널러틱스를 이용한 모바일 데이타 분석#4 주피터 노트북을 이용한 파이어베이스 데이타 분석 및 시각화조대협 (http://bcho.tistory.com)노트북의 개념빅데이타 분석에서 리포팅 도구중 많이 사용되는 제품군 중의 하나가 노트북이라는 제품군이다. 대표적인 제품으로는 오픈소스 제품중 주피터(https://ipython.org/notebook.html) 와 제플린(https://zeppelin.apache.org/) 이 있다.노트북은 비지니스에 전달하기 위한 멋진 액셀이나 대쉬보드와 같은 리포트 보다는 데이타를 다루는 데이타 과학자와 같은 사람들이 사용하는 분석도구인데, 제품의 이름 처럼 노트북의 개념을 가지고 있다.예를 들어서 설명해보자 우리가 수학문제를 풀려면 연습장을 펴놓고 공식을..