본문 바로가기

분류 전체보기236

50. 머신러닝(Machine Learning) Summary 지금까지 머신러닝의 기본적인 개념과 다양한 분석방법에 대해서 모두 배웠습니다. 저도 주말에 도서관등에 다니면서 공부하고 블로그에 정리하면서 많은 것을 배웠네요. 참 재미있고 흥미가 커지는 주제가 아닌가 싶습니다. 실질적으로 적용을 할 수 있는 분야도 다양하고 거의 모든 곳에 활용되어 질 수 있을 것 같습니다. 알파고와 딥마인드 덕분에 세상에서 화두가 된지 아직 1년도 되지 않았지만, 이미 많은 사람들이 관심을 가지고 공부하고 이미 적용도 많이 되어 있는 것 같습니다. 조만간 멋진 머신 비서를 이용할 날도 멀지 않은 것 같네요^^ 저도 평생 공부한다고 생각하고 다음 주제를 찾아서 계속 해볼 생각입니다. 좋은 정보가 있으면 서로 공유하고 나누면서 같이 공부하실 분을 만날 수 있기를 기대해보면서 이번 주제는 .. 2016. 9. 13.
49. 머신러닝 시스템 예제 : Ceiling analysis 머신러닝 시스템을 구축하는데 있어서 가장 중요한 리소스는 개발 시간입니다.많은 사람들이 이 시스템을 개발하면서 감이나 운에 의거해서 task를 선택하고 성능 개선을 위해서 여러가지 시도를 하고 있습니다. 하지만 때로는 이렇게 보내는 많은 시간들이 실제적으로 시스템의 성능 개선에 미치지 못하는 경우가 있어 안타깝기도 합니다.이러한 시간 낭비가 되는 것을 방지하기 위해서 지금까지 여러가지 분석 방안에 대해서 이야기 했습니다. 이번에는 앞에서 다룬 예제와 pipeline을 통해서 Ceiling analysis에 대해서 알아보겠습니다. 아래와 같이 Photo OCR의 pipeline이 3가지의 모듈로 구성이 되어 있습니다. 이 각각의 모듈은 작은 팀으로 구성되어 업무를 수행하고 있을 것입니다. 혹은 한사람이 전.. 2016. 9. 12.
48. 머신러닝 시스템 예제 : Aritificial data synthesis 지금까지 우리가 알고리즘들을 배워오면서 또 바로 앞에 내용에서 학습을 위해서는 다양한 이미지 데이터들이 필요하다는 것을 이해하고 있습니다. 이런 기초 학습을 위한 데이터가 많으면 많을수록 머신러닝의 시스템의 성능에 많은 영향을 준다는 것도 이미 알고 있지요 그러면, 이렇게 많은 데이터들을 어떻게 수집하고 생성해야 할까요?실제적으로 데이터를 수집하기 위해서 많은 노력을 들여야 하게 되는데 이것을 좀더 유용하게 하는 방법이 있습니다. 그것은 바로 인공적으로 데이터를 만들어내는 것입니다. 이것을 Artificial data synthesis라고 합니다. 데이터를 수집하는 주요 경로는 웹이나 인터넷상에서 수집하는 방법이 있고, 현재 보유하고 있는 작은 데이터셋(small labeled training set)으.. 2016. 9. 11.
47. 머신러닝 시스템 예제 : Photo OCR 지금까지 배운 머신러닝에 대한 내용을 토대로하여 photo OCR 시스템을 만들어 보도록 하겠습니다.이것을 통해서 우리는 지금까지 배운 모든 내용들을 종합적으로 사용하는 것을 배우며, 또 머신 러닝 시스템을 구축하기 위한 pipeline에 대해서 알아볼 것입니다. 먼저 photo OCR이란 photo optical character recognition을 말합니다. 즉 사진에 찍혀있는 문자들을 인식하는 것입니다. 최근에 스마트폰등의 보급으로 디지털 카메라를 모두 사용하기 때문에 이러한 사진을 많이 가지고 있습니다. 이런 사진들을 인식하기 위한 하나의 방법이 되는 것입니다. 이를 이용해서 다양하게 실생활에 활용도 가능할 것입니다. 예를들어, 사진 정보를 이용해서 사진을 분류하거나 검색하는데 사용도 될 수 .. 2016. 9. 10.
46. 빅데이터 대응하기 : 분산환경 처리하기 (Map Reduce & data parallelism) 지금까지 배운 알고리즘들을 수행하는 것은 하나의 컴퓨터나 서버에서 처리되는 방식이였습니다. 만약 데이터가 너무 커서 하나의 머신에서 학습이 어려울 경우에는 어떻게 하면 좋을까요? 이를 위해 나온것이 Map Reduce입니다. 아래와 같은 공식의 Batch gradient descent 가 있습니다. m = 400 개인 dataset을 가지고 있습니다. Map Reduce의 개념은 이 400개의 데이터를 한번에 연산하는 것이 아니라 100개씩 4개의 컴퓨터나 서버로 나누어 계산하고 최종적으로 하나의 master 개념의 컴퓨터에서 통합시켜서 처리하는 방법입니다. 아래 공식과 같이 4개로 dataset을 분리하여 각각 100개씩 처리하도록 공식을 나누는 것을 볼 수 있습니다. 그리고 최종적으로 연산된 4개의 .. 2016. 9. 7.
45. 빅데이터 대응하기 : 스트림형 데이터 처리하기 (Online learning) 이번에 배울 알고리즘은 Online learning 입니다.데이터가 지속적으로 흘러가는 것을 처리하기 위한 모델로서 stream 형태의 데이터들을 통해서 학습하는데 유용하게 사용되고 있습니다. 기본적인 아이디어는 stochastic gradient descent와 비슷합니다. 다만 다른 점은 데이터가 고정된 dataset이 아니라는 점일 뿐입니다. 많은 웹사이트 회사에서 지속적으로 유입되는 사용자들의 정보들을 Online learning과 비슷한 방식으로 학습하여 시시각각 변하는 사용자들의 선호도를 조사하고 웹사이트 개선에 이를 반영하기 위해서 널리 사용되고 있습니다. 아래는 배달 서비스를 예제로 하여 설명하고 있습니다. 유저는 배달 서비스가 내위치로 부터 목적지까지 배달이 가능한지 문의하게 됩니다. 그.. 2016. 9. 6.
44. 빅데이터 대응하기 : Large Scale Machine Learning 최근 5년~10년 동안에 머신 러닝이 급격하게 발전한 이유중에 하나는 데이터가 많아졌기 때문이기도 합니다. 최근에 대두된 빅데이터의 시대가 보다 정확한 머신러닝에서의 학습에 큰 도움이 되기 때문입니다. 때문에 우리는 많은 데이터들을 통해 학습을 하게 되는 경우가 자주 발생합니다. 하지만 이런 빅데이터는 학습하는 속도에 영향을 미치기도 하며 알고리즘이 연산을 함에 있어서 연산 비용이 크게 증가하는 원인이 되기도 합니다. 이번에는 이렇게 스케일이 큰 데이터들을 다루는 방법(알고리즘)들에 대해서 알아보도록 하겠습니다. 우리가 이전에도 살펴보았듯이 머신 러닝에서 어느 알고리즘을 사용하면 더 좋은 성능을 보이는가에서는 크게 차이가 없었습니다. 하지만 데이터의 사이즈가 커질 수록 더 좋은 결과가 나타난다는 것은 명.. 2016. 9. 5.
43. 추천 시스템 : 관련된 다른 상품을 추천해주기(Low Rank Matrix Factorization) 이번에는 collaborative filtering algorithm에서 한단계 더 나아가서 어떤 손님이 영화를 보고자 할때 관련된 다른 영화들을 추천해주는 방법에 대해서 알아보도록 하겠습니다. 이전에 배운 예제를 다시 가져오면 아래 그림과 같습니다. 5개의 영화가 있고 4명의 유저가 있습니다. 이들이 준 평점들은 Y로 나타낼 수 있습니다. Y가 주어졌기 때문에 이것을 x 와 세타로 표현하면 아래 그림의 오른쪽 matrix와 같이 됩니다. Y = 세타T(j) * x(i) 여기에서 모든 영화가 가지고 있는 x features들을 하나의 row로 합쳐서 X vector를 만들면 아래 그림 왼쪽 밑에와 같이 됩니다. 또, 모든 사람이 가지고 있는 선호도인 세타 parameters들을 하나의 row로 합쳐서 θ.. 2016. 9. 4.
42. 추천 시스템 : 유저와 머신러닝이 함께 만들기(Collaborative Filtering Algorithm) 이전내용과 이어서 이번에는 Collaborative Filtering 이라 불리우는 알고리즘에 대해서 알아보겠습니다. 이 알고리즘은 학습을 통해서 어떤 feature가 의미가 있는지를 배울 수 있습니다. 이전 내용에서 다루었던 예제를 다시 살펴보겠습니다. 아래 그림과 같이 5개의 영화와 4명의 유저가 평점을 기록합니다. 우리는 x1, x2의 x feature가 어떤 내용인지 알지 못합니다. 이전에서는 x feature를 알고 유저의 선호도(세타)를 찾는 방식이였던 것과 대조적이네요 유저가 남긴 평점을 토대로 하여 각 유저의 선호도인 세타를 아래 그림의 하단과 같이 나타내보았습니다. Love at last란 영화가 어떤 특징을 가지는 지는 모르겠지만 Alice와 Bob은 5점을 주어 선호도가 높음을 알 수.. 2016. 9. 3.
41. 추천 시스템 : Recommender Systems 개요 추천 시스템은 오늘날에 가장 많이 사용되는 알고리즘입니다. 다양한 분야의 서비스에서 사용되고 있으며 대표적으로는 아마존과 같은 쇼핑 사이트에서 추천상품이나 iTunes의 genius 서비스에서 사용되고 있습니다. 특히 아마존에서는 이러한 추천 서비스가 매출에 큰 영향을 미치고 있습니다. 이 추천 서비스를 개선하는 것이 직접적인 수입에 기여를 하는 방법이기도 합니다. 재미있는 것은 추천서비스는 학문적으로는 크게 주목을 받지 않을 만큼 기술적인 특색이 없지만, 상업적으로는 아주 중요한 서비스로 인식이 되고 있다는 것입니다. 사실상 기술적으로는 큰 이슈가 없지만 아이디어의 차이가 추천 서비스의 핵심이라고 할 수 있습니다. 어떤 features를 사용하느냐에 따라서 추천 서비스가 달라지며 핵심 features들.. 2016. 8. 30.