Blog Content

  • 라멘 메뉴 이미지 판별하기 [머신러닝, 딥러닝 실전 개발 입문]

    Category 개발레시피/└ 머신러닝 on 2018. 11. 27. 18:15

    파이썬을 이용한 머신러닝, 딥러닝 실전 개발 입문 도서를 스터디하여 정리한 내용입니다.코드는 http://wikibook.co.kr/python-machine-learning/ 에서 다운 가능합니다. [이미지와 딥러닝 - 라멘 메뉴 이미지 판별하기]책의 예제는 규동 메뉴로 가지고 했지만, 나는 라멘 메뉴를 선택하여 실습해보았다.스크레이핑으로 이미지 수집하기데이터를 전처리/가공하기머신러닝으로 분석하기 CNN 알고리즘 사용목표 : 라멘 사진을 던져주면 무슨 규라멘인지 알려주고 칼로리도 예측해보장 1.스크레이핑부터 시작하기플리커, 인스타그램과 같은 이미지 공유 사이트에서 수집할 수 있으나 가입을 해야함...가입하고 token얻고 귀찬포도주(Photozou)라는 사이트는 가입 없이 사용 가능포도주 검색 API를..

    Read more
  • CNN으로 이미지 분류하기 [머신러닝, 딥러닝 실전 개발 입문]

    Category 개발레시피/└ 머신러닝 on 2018. 11. 27. 18:10

    파이썬을 이용한 머신러닝, 딥러닝 실전 개발 입문 도서를 스터디하여 정리한 내용입니다.코드는 http://wikibook.co.kr/python-machine-learning/ 에서 다운 가능합니다.[이미지와 딥러닝 - CNN으로 이미지 분류하기]CNN(합성곱 신경망) 사용색상이 있는 이미지 분류하기TensorFlow + Keras 사용 1. 이미지 데이터를 파이썬 데이터로 변환하기먼저, Caltech 101 이미지 데이터 세트를 처리해서 image/5obj.npy라는 파일로 저장!src/ch7/caltech101_makedata.py 실행 1) 이미지 세트가 들어있는 폴더 이름, 분류 대상 카데고리를 지정한다.2) 이미지 크기를 지정한다. 색상 데이터를 나타내기 위해 각 픽셀마다 RGB값을 나타내는 3..

    Read more
  • 유사 이미지 검출하기 [머신러닝, 딥러닝 실전 개발 입문]

    Category 개발레시피/└ 머신러닝 on 2018. 11. 27. 17:31

    파이썬을 이용한 머신러닝, 딥러닝 실전 개발 입문 도서를 스터디하여 정리한 내용입니다.코드는 http://wikibook.co.kr/python-machine-learning/ 에서 다운 가능합니다. [이미지와 딥러닝 - 유사 이미지 검출하기]Average Hash 알고리즘 사용PIL(Pillow) 라이브러리 Average Hash이미지를 비교 가능한 해시 값으로 나타낸 것이미지가 조금 다르더라도(이미지 해상도 크기, 색조, JPEG/PNG 등의 압축 형식 등) 유사한지를 검출해야 할 때 사용. 구체적인 방법1) 이미지 크기를 8 x 8(또는 16 x 16)로 축소한다.2) 색을 그레이스케일로 변환한다.3) 이미지의 각 픽셀의 평균을 계산한다.4) 각 픽셀의 어두운 정도가 평균보다 크면 1, 평균보다 작..

    Read more
  • 3. Linear Regression cost 함수 최소화 (모두를 위한 딥러닝 스터디)

    Category 개발레시피/└ 머신러닝 on 2018. 11. 14. 17:01

    Linear Regression의 cost 최소화 알고리즘의 원리 강의 슬라이드 : http://hunkim.github.io/ml/lec3.pdf - Simplified hypothesis . H(x) = Wx - cost(W)는 무엇일까? . 밥그릇 엎어놓은 모양인 그래프 . 목표 : cost가 작아지는 W와 b를 찾는것 . 사용되는 알고리즘 : Gradient descent algorithm (경사를 따라 내려가는 알고리즘) - 어떻게 작동할까? . 각 지점마다 경사도 체크 . 항상 최저점에 도달할 수 있다. . 경사도 구하는 방법은 미분! - Convex function : 모양이 convex이기 대문에 항상 답을 찾을 수 있다. (cost의 최소값)

    Read more
  • 2. Linear Regression의 개념 (모두를 위한 딥러닝 스터디)

    Category 개발레시피/└ 머신러닝 on 2018. 11. 14. 16:41

    Lenear Regression의 Hypothesis와 Cost - (Linear) Hypothesis . 어떤 리니어한 모델이 우리가 가지고 있는 데이터에 맞을거다 라고 가설 (비례) . 공부 많이 한 학생이 성적이 높을거라든지 등.. . 리니어한 선을 찾는 것. 학습하는 것 . 수학적으로 나타낸다면 ? H(x) = Wx + b ( H : 가설 ) , W와 b의 값에 따라 선이 결정 . 어떤 선이 잘 맞는 그래프의 선일까? 실제 데이터와 가설이 나타내는 점들과의 거리를 비교해서 거리가 멀면 나쁜것, 가까우면 좋은것. . Cost function or Loss function (거리 측정) : H((x) - y)^2 , 거리의 차를 제곱 . cost(W,b) 는 값이 가장 작게 나오는 것을 학습시키는 것..

    Read more
  • 1. 머신러닝의 개념과 용어 (모두를 위한 딥러닝 스터디)

    Category 개발레시피/└ 머신러닝 on 2018. 11. 7. 18:51

    기본적인 Machine Learnning의 용어와 개념 설명 - 머신러닝이란? . 일종의 소프트웨어 . 스팸 필터, 자율주행 : 너무 룰들이 많다. . 자동적으로 배우면서 룰을 만들면 어떨까? - 학습 방법에 따라 Supervised/ Unsupervised로 나뉨 . Supervised learning: 레이블된 데이터가 정해져 있는 데이터 - 트레이닝 셋 . cat/dog 별로 이미지 카데고리 데이터 . Unsupervised learning : 정할 수 없는 데이터. 데이터를 보고 스스로 학습해야 하는 것들 . 구글 뉴스 grouping . 비슷한 단어 모으기 - Supervised learning . ML에서 가장 일반적인 유형 . 이미지 레이블링 . 이메일 스팸 필터 : 레이블된 데이터를 가지고..

    Read more
  • [객체지향] 03. 타입과 추상화 (객체지향의 사실과 오해)

    Category 개발레시피/└ 언어 on 2018. 9. 10. 23:10

    03. 타입과 추상화 추상화를 통한 복잡성 극복 해리 벡의 지하철 노선도는 불필요한 지형 정보를 제거함으로써 단순함을 달성한 추상화의 훌륭한 예다. 역의 위치가 중요한 것이 아니라 역과 역 사이의 연결 관계가 중요. 진정한 의미에서 추상화란? 현실에서 출발하되 불필요한 부분을 도려내가면서 사물의 놀라운 본질을 드러나게 하는 과정 * 복잡성을 단순하게! 추상화 : 어떤 양상, 세부사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. - 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것 - 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부사항을 제거함으로써 단순하게 만드는 것..

    Read more
  • [객체지향] 02. 이상한 나라의 객체 (객체지향의 사실과 오해)

    Category 개발레시피/└ 언어 on 2018. 9. 8. 16:52

    객체란 ? "객체"란 인간이 분명하게 인지하고 구별할 수 있는 물리적인 또는 개념적인 경계를 지닌 어떤 것이다. 객체지향의 패러다임의 목적은 현실 세게를 모방하는 것이 아니라 현실 세계를 기반으로 세로운 세계를 창조하는 것이다. 객체, 그리고 이상한 나라의 앨리스 이 책에서는 객체, 상태, 행동을 "이상한 나라의 앨리스" 책에 나오는 줄거리에 빗대어 설명하고 있다. 이 이야기의 전반부에 앨리스가 아름다운 정원에 들어가기 위해 몸의 크기를 작게 줄이는 부분이 있다. 앨리스는 정원으로 통하는 문을 통과하기에 적당한 "상태"로 자신의 키를 계속해서 변화시킨다. 앨리스의 키는 앨리스가 "마셔라" 라고 인쇄된 병 속의 음료를 마시거나, 토끼가 떨어뜨린 부채로 부채질을 하거나, 쐐기벌레가 알려준 버섯의 한 쪽 부분..

    Read more
  • [Angular] 관계성이 없는 Component간의 통신

    Category 개발레시피/└ Front-End on 2018. 9. 6. 17:48

    관계성이 없는 Component간의 통신은 어떻게 할까?Service로 Data를 공유하자! siblings, grandchildren 등 직접적인 연결성이 부족한 Component간의 데이터 공유는Service를 사용하면 된다. 그 중 RxJS를 이용해 데이터를 공유하는 방법이 있는데,BehaviorSubject를 사용하는 것이다.BehaviorSubject는 Observable의 특별한 형태인데,연관된 데이터를 쉽게 구독할 수 있는 method와데이터를 변경하기 위한 method등 사용하기 쉬운 몇가지 method를 제공하여보다 쉽게 RxJS기능을 이요할 수 있도록 고안된 class라고 한다. 물론, RxJS에서 제공하는 Subject를 사용해도 되지만, BehaviorSubject를 선호하는 이유는..

    Read more
  • [객체지향] 01. 협력하는 객체들의 공동체 (객체지향의 사실과 오해)

    Category 개발레시피/└ 언어 on 2018. 9. 2. 15:36

    "객체지향의 사실과 오해" (조영호 지음)책을 읽고 한 챕터씩 배운 내용을 블로그에 정리하려고 한다. 01. 협력하는 객체들의 공동체이 챕터에서는 커피공화국이라는 소재로 객체, 메시지, 메소드 등과 다형성, 캡슐화 등을 설명하고 있다.등장인물은 손님, 캐시어, 바리스타이자 '역할' 이다. 역할, 책임, 협력특정한 역할을 수행하는 사람들은역할에 적합한 책임을 수행하게 된다.손님에게는 커피를 주문할 책임이 있고,캐시어에게는 주문 내용을 바리스테에게 전달할 책임과커피가 준비됐다는 사실을 손님에게 알릴 책임.바리스타는 커피를 제조할 책임. 특정한 역할을 맡고 역할에 적합한 책임을 수행한다는 사실은몇 가지 중요한 개념을 제시한다.1. 여러 사람이 동일한 역할을 수행할 수 있다. - 손님 입장에서 어떤 캐시어가 주..

    Read more