관리 메뉴

Storage Gonie

1주차 - Quiz 2까지 본문

데이터 사이언스/ML with TF on GCP(Coursera)

1주차 - Quiz 2까지

Storage Gonie 2018. 10. 5. 04:38
반응형

# AI와 ML의 차이(What it means to be AI first)

- AI는 인간같이 행동하고 생각하는 기계를 만드는 방법과 이론을 다루는 분야를 의미한다.

- ML은 특정 AI문제를 풀기위한 도구집합을 의미하며, 다른 기술과 비교되는 차이점로 기계가 지능이 없는상태에서 시작하여 학습을 통해 지능적이 되는 것이다.


# ML은 두 단계로 구현된다(Two stage of ML)

- 여기서 집중하게될 ML의 form은  지도학습(supervised learning)이다.

- 아래의 예시는 이미지를 보여주면 그 이미지가 무엇인지 식별하는 ML모델을 훈련시키는 예시이다.


<Stage1 >

   - examples로 ML모델을 훈련시킨다.

   - examples은 input(이미지의 픽셀)과 label(정답)으로 이루어져 있다. 

   - ML모델은 수학함수이며, 조정 가능한 매개변수들을 가지고 있다.

   - 모델을 훈련할 때 우리가 해야하는 일은 모델을 아주 미세하게 여러번 조정하는 것이다.

   - 이렇게 훈련을 마친 모델은 Training input에 대해 Training Label에 가능한 가까운 출력을 내어준다.



<Stage2>

   - 훈련에 사용하지 않은 example을 input으로 넣어 output을 inference 시킨다.

   - 모델을 훈련시킨 이후에는 훈련때 사용하지 않은 이미지의 레이블을 예측하는 데 사용할 수 있다.

   - 왜냐하면 고양이가 무엇인지, 어떻게 생겼는지를 일반화 하기위해 보여준 특정 examples로부터 ML모델이 일반화 되었기 때문이다.

   - 일반화된 ML모델을 만드는 중요한 요소는 대량의 data 이다.



<Stage1 & Stage2>

   - ML이 training, inference(prediction) 2단계로 이루어 져있고, 둘다 중요하게 다뤄야 한다.

  - 너는 Stage1, training 단계에 모든 에너지를 집중시킬 수 있지만 이러면 안된다. 모델을 운영하려면 production으로 모델을 put해야하기 때문이다.

  - 많은 교육자료들을 보면 ML의 두번째 단계를 무시하는 경향이 있다. 그러나 현실세계에서 사용할 수 없다면 뭣하러 훈련시키겠는가?

  - 앞으로 모델을 production으로 put하는 것 까지 배우게 될 것이다.

# Neural Network(ML in Google Products)

- 우리는 뉴럴네트워크에 대해 말하고 있으며 아래의 그림은 Neural Network라고 불리는 수학적인 모델이다.

- ML에서 일반적으로 사용하는 Linear method, decision trees, radial basis functions, ensembles of trees 등등의 다른 수학적인 모델도 있으나 여기서는 뉴럴네트워크만 다룸.


<과거 뉴럴네트워크의 한계>

   - 전통적으로 뉴럴네트워크는 많은 레이어를 가지지 않았고, 1970년에 사람들은 하나의 히든 레이어만을 사용했다.

   - 첫번째 이유 : 레이어가 많아지면 계산량이 많아지는데 그때 당시 컴퓨터 성능이 부족했다.

   - 두번재 이유 : 레이어가 많아지면 매개변수를 학습시키기 위해 그 만큼 더 많은 데이터가 필요한데 대용량의 데이터가 없었음.

   - 세번째 이유 : 레이어가 많아지면 훈련시간이 오래걸리기도 하지만, 계산 과정에서 몇몇 레이어가 모두 0이 되거나 NaN이 되어버리는 문제가 생겼음.


<최근 한계를 뛰어넘은 뉴럴네트워크>

   - 최근 몇년동안 뉴럴네트워크는 다양한 작업에서 최고에 가까운 솔루션으로 입증되었다.

   - 언어번역, 이미지분류, 음성이해 등과 같은 정말 어려운 문제에 대한 성능을 극적으로 향상시켰으며, 기존의 ML로 해결할 수 없던 작업까지도 해결하게 됨.

   - 비정형데이터에서도 잘 작동하며, 또한 이것은 support vector machine, boosted decision trees, bagged decision trees와 같은 전통적인 ML방법이다.

   - 우리가 어떻게 pipline을 구축하는지 알고나서 어떻게 image문제, sequence 문제, recommendation system을 다루는지 보게 될거다.


# 한개의 모델로 전체 문제를 풀 수 있을거라는 생각을 가지지 말아라 (ML in Google Products)

- 제품당 수십개의 ML 모델이 포함되어 있는데, 이 이유는 아래의 예제에서 살펴보자.

- 재고가 떨어질지를 어떻게 예측할지 결정해야하고, 이것을 하나의 ML 모델이라고 생각하자.

 - 그런데 너는 이 문제를 풀기위해 여러개의 ML모델들이 필요할것이다.

 - 또한, 비지니스에 대한 지식에 따라 이 문제를 아래와 같이 작은 문제로 쪼개야 할 수도 있다.

- 예를들면, 

너의 첫번째 모델은 해당 상점위치에서 제품의 수요를 예측해야하고,

너의 두번째 모델은 공급 업체의 창고나 주변 상점에서 이 상품의 재고를 예측하고,

너는 세번째 모델은 제품의 재고를 확보하는 데 걸리는 시간을 예측해야 할 수 있다.

그리고 이것을 사용하여 어떤 공급자에게 그 선반을 채우라고 요청할 것인지를 예측할 수 있다. 물론, 모델 자체가 이보다 더 복잡해질 수 있기도 하다.

- 또한 제품에 따라 다른 데이터를 사용해야 하므로 아래와 같은 경우가 또 발생한다.

- 우유의 수요를 예측하는 모델은 국수의 수요를 예측하는 것은 다르다.

- 전자제품을 다시 채우는 것과 가구를 다시 채우는 것은 다르다.

- 즉, 여기서 한개의 제품당 수십개의 ML모델이 필요하다.

- 그러나, 우리가 함께하는 이 과정은 교육과정이므로 1개의 모델로 training, deploy, predict하는 것을 할 것이다.

- 하나의 모델을 구축하면 전체 문체를 해결할 수 있다고 생각하는 함정을 피해라.


# 구글 포토 작동방식(ML in Google Photos)

- 사용자가 사진을 업로드 해두면 자동으로 태깅을 처리해주어 검색을 용이하게 해준다.

- ex) dogs, 여행장소명, 등


# 카메라를 이용한 구글 번역기, 구글 메일의 Smart reply 작동방식(Google Translate and Gmail)

<구글 번역기의 카메라 번역기능>

   - 구글 번역기 앱은 여러 모델들의 조합을 보여주는 좋은 예다.

   - 첫번째 모델 : 간판을 식별함

   - 두번째 모델 : 간판을 읽음(OCR : Optical Character Recognition)

   - 세번째 모델 : 어떤 언어인지 판별

   - 네번째 모델 : 번역

   - 다섯번째 모델 : 원래의 텍스트를 지우고 번역된 텍스트로 대체하여 보여줌

   - 여섯번째 모델 : 보여줄 글꼴을 선택



<구글 메일의 Smart Reply기능>

   - 받은 이메일을 입력으로 받아 사용자가 답장시 사용할지 모르는 응답문을 예측하여 제안하는 기능


# ML이 진정 의미하는 것 혹은 ML로 어떤 문제를 해결할 수 있는가에 대한 해답(Replacing Heuristic Rules)

<Eric Schmidt, 구글의 이사회 의장>

   - "프로그래밍의 패어다임이 변하고 있다."

   - "그것은 너가 컴퓨터를 프로그래밍 하는 것을 의미하는게 아니다."

   - "컴퓨터가 너가 원하는 것을 하도록 학습시키는 것을 말하는거다."

   - "프로그래밍을 대체하기 위한 방법으로 머신러닝을 말하는 것이다."

   - "너가 다른사람들에게 ML에 대해 말하면. 그들은 보통 데이터로부터의 예측을 생각한다."

   - 그러나 Eric의 말에 따르면 Data뿐만이 아닌 Logic에 대해 말하고 있다.


<패러다임이 교체된 예시>

   - 구글의 검색시스템

   - 사용자가 만약 'Giants'를 검색하면 결과로 San Francisco Giants를 보여줘야 하는가 New York Giants를 보여줘야 하는가 아님 키에대한 정보를 보여줘야 하는가?

   - 아래의 Rule들은 'Giants'의 검색에 대해 결과로 보여줄 결과를 결정하는 검색엔진의 규칙중 일부였다.

   - 사용자가 Bay 지역에 있는 경우 'Giants'를 검색한다면 San Francisco Giants에 대한 결과를 보여준다.

   - 사용자가 New York 지역에 있는 경우 New York Giants에 대한 결과를 보여준다.

   - 사용자가 두 지역이 아닌 다른 곳에 있다면 키가 큰 사람들에 대한 결과를 보여준다.

   - 이 예시 뿐만 아니라 사람들이 요청하는 더 많은 쿼리들을 생각하면 코드 기반이 얼마나 복잡한지 알 수 있다.

   - 실제로 손으로 하는 코드 기반의 시스템은 유지하기가 어렵다.

   - 여기에 ML을 적용한다면?, 검색결과에 대한 순위를 매길 수 있도록 ML모델을 훈련면 어떨까?

   - 이것이 검색순위 결정하기위해 Deep Neural Network를 사용한 RankBrain의 핵심 아이디어였고, 이는 검색품질을 극적으로 향상시켰다.

   - 검색결과를 사람들에게 보여줬을 때 우리는 그들이 클릭한 링크를 알 수 있기 때문에 사용자가 실제로 선호하는 것을 기반으로 계속해서 성능이 향상될 수 있었다.

   - 이것은 사람이 만든 규칙보다 성능이 뛰어났고, 이외에도 수작업으로 작성한 코드 규칙을 ML로 대체할 수 있다.

   - 또한, ML은 자동화 되어있기 때문에 확장성이 뛰어나다.

   - 이렇듯 ML에 의해서 heuristic rules이 교체되고 있고, 그것이 ML이다.


<ML로 어떤 문제들을 해결할 수 있는가?>

   - 그것은 오늘 우리가 손수 작성하고 있는 모든 rule들 이다.

   - 단지 예측 분석에 대해서만 생각할게 아니다.

   - 위에서 봤듯이 구글 검색은 예측분석 어플리케이션이 아님에도 불구하고 이것에 ML을 사용했다.

   - 앞으로 ML에 대해 말할 때 ML은 rule들을 대체하기 위한 방법이고, 이것이 ML이 해결할 수 있는 문제에 대한 포괄적인 대답이라고 말해라.

   - Google은 ML을 scale, automate, personalize (확장, 자동화, 개인화) 하기위한 방법으로 생각한다.

   - 더 많은 문제 해결을 위해 현재 코딩하고 있는 모든 heuristic rules에 대해 생각하고, 데이터를 기반으로 어떻게 모델을 교육시킬지 생각해라.

   - 너가 올바른 데이터를 수집할 수 있는 환경이 제공된다면, 그것을 ML에 사용할 수 있을 것이다.

   - 더이상 rule을 추가하여 버그 보고서를 수정하는 것에 대해 생각하지마라. 이제는 새로운 데이터를 얻을 때 마다 모델을 계속해서 훈련시킨다고 생각해야 한다.

   - 특정 입력에 특정 규칙을 적용하는 것에 대해 생각하는 대신, 예측할 수 있도록 모델을 규모에 맞게 배치하는 것에 대해 생각해라


#  ML을 적용하려 할 때 문제에 접근하는 방식(It's all about data)

- 사용자가 '내 근처의 커피점'을 검색했을때 우리가 내줄 결과에 대한 문제를 생각해보자.

- ML을 적용할 때 사용하는 일반적인 아이디어는 해결하고자 하는 문제를 미래 에측에 대한 문제로 바꾸는 것이다.

- 이를 위해서 우리는 거리대비 커피품질, 서비스 시간대 커피품질, 등에 대한 정보를 수집할 필요가 있다.

- 그러나 지금은 거리대비 사용자 만족도 하나만 고려하겠다.


- 우리는 우리 나름의 추측을 통해 많은 rule을 가지고 있기 보다는 사용자가 우리에게 말해준 것을 가지고 있고 싶다. 

- 우리는 heuristics방식으로 시작할 수 있지만, 사용자 선호도에 대한 충분한 데이터가 있는 즉시 heuristics방식을 버린다는 사고방식을 가지고 있다고 하자.

- 우리는 ML모델을 학습시키기 위해서 라벨링된 데이터가 필요하다.

- 아래의 그래프에서 입력은 상점까지의 거리이고, 라벨은 사용자의 만족도이다.


- 위 데이터를 토대로 거리별 사용자의 선호도를 예측할 수 있는 ML모델을 만들 수 있었다.

따라서 접근하는 방식은 ML은 적절한데이터를 수집하고나서 적당한 학습의 정도를 찾는것고 훈련에 사용한 example들을 신뢰하는 것이다.


# ML로 문제를 해결한 Use Cases(Lab Intro - Framing an ML Problem)

제조(Manufacturing)

- 결함 예측,상태 모니터링 

- 소비 성향

- 수요 예측

- 최적화처리


소매업(Retail)

- 예측을 통한 재고 계획

- 마케팅


헬스케어, 생명과학(Healthcare and Life Sciences)

- 실시간 환자 데이터로 부터의 진단 또는 경고

- 질병식별 

- 감정분석


여행 & 접대(Travel and Hostpitality)

- 항공기 스케줄링

- 다이나믹한 가격책정

- 소셜 미디어에서의 피드백

- 고객 고충 해결

- 교통 패턴과 혼잡 관리


금융업(Financial Service)

- 리스크 분석 및 통제

- 고객 분할

- 신용평가


에너지, 공급원료, 공공(Energy, Feedstock, Utilities)

- 에너지 수요 및 공급 최적화

- 지진 데이터 분석

- 스마트 그리드 관리


# ML문제의 틀을 잡는 방법(Lab debrief)

첫째, ML Problem에 대해 질문을 던져라.(If the use case was an ML Problem...)

           1) 무엇이 예측되어야 하는가?(What is being predicted?)

           2) 무슨 데이터가 필요한가?(What data is needed?)

- 둘째, Software Problem에 대해 질문을 던져라.(Imagine the ML Problem is a question of software)

           3) 예측을 제공하기 위한 API에 대한 문제(What is the API for the problem during prediction?)

           4) 누가 이 서비스를 이용할 것이고, 지금 그들이 어떻게 하고 있는가?(Who will use this service? How are they doing it today?)

- 셋째, Data Problem의 틀안에서 질문을 던져라. 데이터/예측을 수집, 분석, 예측, 대응하기 위한 중요 작업은 무엇인가?(다른 input features는 다른 종류의 처리를 필요로 한다.)

           (Cast in the framework of  a data problem. What are some key actions to collect, analyze, predict, and react to the data/predictions)

           5) 우리가 분석할 데이터가 무엇인가?(Waht data are we analyzing?)

           6) 우리가 예측할 데이터가 무엇인가?(What data are we predicting?)

           7) 우리가 반응할 데이터가 무엇인가?(What data are we reacting to?)


ex) Manufacturing 분야에서의 수요예측 주제


<ML Problem>

1) 예측해야 하는 것이 무엇인가?

 - 이번달에 얼마나 많은 unit을 생산해야 하는가?

2) 필요한 데이터가 무엇인가?

 - 지난달에 판매한 unit의 수, 판매된 가격, 반환된 unit의 수, 경쟁사 제품의 가격 등 과거 데이터가 필요하다.

 - 또한, 경제수치, 고객 신뢰도, 이자율, 작년자료 등이 필요할 것이다.

<Software Problem>

3) 서비스의 API는 어떤것인가?

 - API 메소드는 예측된 수요를 반환할 것입니다.

 - 이때 매개변수 즉, 입력으로 '제품의 ID'와 '예측을 수행할 월'을 지정할 수 있을 것입니다.

4) 누가 서비스를 이용할 것인가? & 그들이 현재 어떤식으로 처리하고 있는가?

- 수요예측에 대한 문제이기 때문에 제품관리자 혹은 물류관리자 등 일 수 있다.

- 전화판매, 전반적인 경제, 무역 간행물의 동향을 조사하여 어떻게든 결정을 내리고 있다.

<Data Problem>

5) 어떤 데이터를 수집해야하는가?

- 문제 해결을 요청한 사람들이 제공해주는 데이터를 제외한 다른 모든 데이터를 수집해야함.

- 경제 데이터, 경쟁 업체 데이터, 업계 데이터, 회사 자체의 데이터 등.

6) 어떤 데이터를 분석해야 하는가?

- 모든 dataset을 분석해야 한다.

- features를 조작할 수 있고, 모델의 입력으로 사용할 feature를 선택할 수 있다.

7) 예측 결과에 대한 우리의 반응은 무엇인가?

- 수요가 증가할 것으로 예측된다면, 우리의 공급처에 더 많은 것을 주문한다.



 # 다른 회사에서 적용한 ML의 사례(Demo: ML in applications)

- ex) Aucnet : 일본에서 가장 큰 실시간 자동차 경매서비스이고, 매년 30,000명의 딜러들과 40억 달러 규모의 경매가 이루어 지고 있다.

- 과거에 자동차 딜러들은 차를 팔기 위해서 여러장의 사진을 찍어야 했고, 서비스에 업로드 하면서 차의 기종이 원지, 차의 어떤 부분의 사진인지 명시해줘야 했다.

- 딜러들은 매일 수천장의 사진을 다뤄야 했고 이것은 시간이 많이 걸렸다.

- 그런데 지금, 머신러닝 시스템을 도입했는데 이것은 차 기종이 무엇인지 높은 정확도로 알려주고, 예측되는 판매 가격범위, 어떤 부분의 사진인지 분류 등을 제공한다.


- 이 시스템으로 차 딜러들은 분류되지 않은 사진을 그래그&드롭만 하면 위에서 말한 것들을 수행할 수 있다.

- 다음은 Aucnet website가 작동하는 방법이다.


1. 판매할 차량에 대해 우리가 찍은 사진들을 그래그&드롭하여 업로드 한다.


2. 다음은 그 분석 결과이다.

- 맨위는 모델

- 그 아래는 사진을 Front, Right Side, Right Side Front, 등으로 분류된 사진을 보여준다.


 # 미리 훈련된 모델 적용예시 및 미래에 커뮤니케이션 방식에서의 변화(Pre-trained models)

- 어떤 회사는 Tensorflow를 이용하여 구글 클라우드 플랫폼 위에 모델을 직접 만들었다. 그러나 우리는 점점 이런 과정을 거칠 필요가 없어진다.

- 구글은 자기들이 가진 데이터를 가지고 훈련시킨 ML services를 다양한 도메인들에 대해 제공한다.

- 예를들어, 음성을 번역하려는 경우 음성API를 사용하면 직접 데이터를 수집, 교육, 예측할 필요가 없어진다.


- 다음은 Pre-trained moels를 사용한 예시이다.

- 'Ocado' : 영국에 기반을두고있고, 세계에서 가장 큰 온라인 전용 식료품점이다.

- 예전에 여기서 처리했던 방식을보자.

- 예전에는 고객이 메일을 회사로 보내오면 각각의 이메일을 읽어보고 적절한 부서로 보낸다음 다시 읽혀지는 방식이었다.

- Ocado가 위 같은 방식으로 일을 처리했었는데 한계를 느끼고, 자연어처리로 눈을 돌리게 된것이다.

- 그렇게 해서 이메일의 sentiment, entitied, syntax, 말하고 있는것 등을 추출할 수 있게 되었다.

- 이 기술은 Ocado가 이메일의 내용과 태그를 통해 우선순위를 정하고 매우 효율적이게 이메일을 라우트 해줄 수 있게 해주었다.


- 아래는 이 이후 커뮤니케이션 방식에서 이루어질 변화이다. 

- 고객들은 점점 웹사이트에서 단추를 클릭하길 원하지 않고, 이메일 또한 보내길 원하지 않는다. 고객은 직접 대화하기를 원해한다.

- 이에 대한 변화로, Gartner는 우리가 몇년안에 모바일 앱보다 대화식 인터페이스에 더 많은 비용을 지출할것이라고 말한다.

- 그러면 이것이 음성 API를 사용해서 번역을 하고 그것을 이해하려는 노력을 의미하는가?

- 아니다. 그것은 Dialogflow라고 불리는 고도의 대화 에이전트 도구가 사용되는 것을 의미한다.

- 여기 화면을 보면 에이전트가 "오늘 어떻게 도와드릴까요?" 라고 하면 고객이 "베이컨과 치즈가 들어간 피자를 먹고 싶어요"라고 답할 수 있다.

- 이를 바탕으로 Dialogflow는 고객이 피자를 주문하고 싶어하고, 베이컨과 치즈에 상응하는 토핑을 추가할 수 있다는 Json 메시지를 작성한다.

- 그리고나서 에이전트는 "어떤 사이즈를 원하나요?"라고 더 물어볼 수 있고 사용자가 응답한 내용이 Json에 추가된다.

- 이는 매우 대화식 인터페이스이며, 이러한 대화를 통해 구조화된 Json 메시지가 생성된다.

- 이렇게 하면 사용자는 더이상 이전과 동일한 방식으로 입력을 직접 선택하지 않아도 되며, 대화 인터페이스를 통해 연결된다.



 # ML Marketplace에서 ML의 추상화 레벨이 점점 높아지고 있다. (The ML marketplace is evolving)

- 추상화 레벨이 높아지고 있다는 것이 의미하는 건 점점 맨 아래단계에서 시작하지 않아도 된다는 것이다.

- 아래의 사진은 오른쪽으로 갈수록 추상화 레벨이 높아진 케이스를 나열한 것이다.

- 첫째, Aucnet은 처음부터 자체적으로 ML 모델을 훈련시켜 목적달성.

- 둘째, Ocado는 자연어 API를 구축하여 자연어 API의 결과를 파싱하여 목적달성.(Aucnet보다 한단계 더 높은 수준에서 시작했음)

- 셋째, Giphy는 텍스트를 찾기 위해 비전API를 이용하여 목적달성. 다른 소셜미디어 회사는 비전API를 부적절한 업로드를 제한하기 위해 사용.

- 넷째, Uniqlo는 Dialogflow를 사용한 쇼핑챗봇을 이용하여 목적달성.



- 우리는 시간이 흐르면서 소프트웨어의 대부분의 여정에 따라 ML 추상화 레벨을 증가시킬 것이다.

- 또한, 점점 많은 사람들이 ML을 API형태로 애플리케이션에 통합하게 될 것이다.

- 이때 기술의 발전에서 API를 구축하는 사람이 있을 것이고, 애플리케이션에 API를 통합하는 사람이 있겠지만 우리는 ML API를 만드는 사람일 것이다.


 # ML이 아닌것과 ML인 것 & ML 모델의 성능올 향상시키고 싶다면 more data vs. more complex model? (A data strategy)

- 맨 왼쪽의 최단경로를 찾아주는 것은 ML이 아닌 A*알고리즘 입니다.

- 가운데의 것은 사용자가 Wifi 지점, 기압, 등등을 따져 몇층에 있는지를 알려주는데 이것도 ML이라고 할 수 있다.

- 맨 오른쪽 것은 개인의 히스토리 정보, 현재위치, 개인의 관심사를 고려하여 추천정보를 보여주고, 그 정보가 도움이 됐는지 안됐는지 물어보는 이것이 바로 ML이다.

- ML의 모델의 성능을 향상시키고 싶다면 모델을 복잡하게 만들려고 하기보다는 더 많은 데이터를 수집하는데 힘써라.

- 이것은 더 많은 데이터 보다는 더 다양한 데이터를 수집하라는 것을 의미한다.

- 점점 더 많은 데이터를 얻을수록 전판적인 패턴이 분명해지기 때문이다.

- 예를들어, 데이터가 이러한 프랙탈로 구성되어 있다면 확대해서 지엽적인 곳만 보면 패턴이 보이지 않을 것이다.

- 반면 데이터를 더 모았다고 가정하고 멀리서 보면 패턴이 보여지는 것과 원리가 같다.


# 수동 데이터 분석이 필요한 이유 & Training - serving skew란? & 훈련과 예측시 고려해야할 성능(Training - serving skew) => 솔직히 이번 강의 이해 잘 안됨.

[수동 데이터 분석(수동으로 수집하고, 라벨링, 등등 하는 것을 의미)이 필요한 이유] 

- manual data analysis를 사용하여 성공적인 ML도입 보여준 Global Fishing Watch

- Global Fishing Watch : 세계적인 어업 활동을 모니터링하며 이에대한 데이터를 실시간으로 시각화 및 추적하여 바다의 지속성 홍보 및 어업 관리 방식 개선.

1) 첫째, 좋은 ML학습 모델을 구축하려면 데이터를 알아야 하기 때문이다.

- 이것이 기본이므로 수동 데이터 분석을 하지 않고 ML에 뛰어들지 말아라.


2) 둘째, ML은 자동화를 향한 여정이기 때문입니다.

- Global Fishing Watch 처럼 작은 규모의 어업 데이터를 수동으로 분석하고, 이것을 자동화 하여 훨씬 더 많은 어업 데이터를 분석하기 위한 것이 ML의 최종 목표입니다.


2) 셋째, 데이터 수집이 가장 오래걸리고 힘든데 이것이 해결되면 프로젝트의 성공률이 증가하기 때문이다.

- 수동으로 데이터를 먼저 수집해보라는 의미.


3) 넷째, 수동 데이터 분석은 훈련에 사용될 합리적인 입력을 얻기위한 것으로 필수적이기 때문

- 분석단계를 통해 데이터로부터 얻을 수 있는 통찰력이 있는지의 여부를 알 수 있기도 하다.




['training - serving skew'란?]

- 'training - serving skew' : training 시 성능과 serving 시 성능 간의 차이를 말합니다. 

- 이러한 격차의 원인은 다음과 같습니다.

1) training 과 serving pipline에서 데이터를 처리하는 방법의 차이

2) train할 때와 serve할 때의 데이터 변화

3) 모델과 알고리즘 간의 피드백 루프

- 가장 좋은 해법은 시스템과 데이터의 변화로 인해  예기치 않은 격차가 생기지 않도록 직접 모니터링 하는 것입니다.

- 더 자세한 내용은 다음에서 볼 수 있음(https://developers.google.com/machine-learning/guides/rules-of-ml/)


[훈련과 예측시 고려해야할 성능]

- 훈련은 대용량의 데이터를 다룰 수 있도록 확장할 수 있어야 한다.

- 예측은 초당 수많은 쿼리를 처리할 수 있도록 확장할 수 있어야 한다.


# 빨리 실패하는 것의 중요성 & 비정형데이터를 다루는 법(An ML strategy)

[빨리 실패하는 것의 중요성]

- 빠르게 실패하는 것은 ML분야에서 매우 중요하다.

- 더 많은 아이디어들을 시도하고 더 많은 성공을 거두려면 빨리 실패하는 것을 반복해야한다.


[비정형데이터를 다루는 법]

- 기업의 90% 데이터가 비정형 데이터이다. ex) 이메일, 비디오장면, 텍스트, 보고서, 패션사진, 이벤트, 뉴스 등이 있다.

- 비정형 데이터를 다루는 것은 pre-trained model들로 인해서 더 쉬워졌다.

- 비정형 데이터를 처리하는 방법으로 ML파이프 라인을 생각할 수 있다.

- 비정형 데이터를 ML API에 통과시켜라, 그러면  간단한 ML 모델을 구축할 수 있는 entities, places, labels, people 들을 얻을 수 있다.

- 그래서 우린 비정형데이터로 시작하지 말고, ML API를 사용해서 처리해라. 그리고 API의 결과를 나의 custom ML 모델의 input으로 사용해라.



# 비지니스에서 ML의 이점을 챙기는 법 & ML로 불가능한 것(Transform your business)

[비지니스에서 ML의 이점을 챙기는 법]

1. 애플리케이션에 ML을 삽입하여 사용자의 입력을 간소화하고, 개인에게 맞춤형을 제공하는데 사용한다.

2. 비지니스를 조정하는데 ML을 사용하여 비지니스 프로세스를 간소화하고 새로운 비지니스 기회를 창출할 수 있다.

3. 사용자의 요구를 예측하여 ML로 사용자가 원하는 바를 만족시킬 수 있다.

(3번에 대한 예시)

시스템이 소비자들을 위해서 바로 자동적으로 조치를 찾도록 할 수 있다. ML이 맥락을 이해하고 다음 요구 사항을 예측합니다. 

비행기가 연착됐나요? 그럼 재예약을 제공했나요?

상점에 들어가서 빈 선반을 봤나요?

그들이 너에게 왜 전화하고 있나요?


[ML로 불가능한 것]

- 사용자가 그들의 비디오에서 배경음악을 원하는데 인기 있는 노래를 사용하는 것이 저작권 침해인가? 

- 그들이 2분 30초 안에 클라이맥스를 원하고 재즈 스타일로 음악을 원한다면?, 그리고 여러분은 그 음악을 만들어내서 배경음악으로 사용하는 것은 저작권 침해인가?

- 이것을 알려주는 것은 ML로 불가능 하다.

# 비지니스에 ML을 적용하기 위해 생각해볼 수 있는 것(Lab Intro - ML use case)

[비지니스에 ML을 적용하기 위해 생각해볼 수 있는 것]

우리가 가지고 잇는 기존의 애플리케이션을 다시 생각해봐라

- 어떻게 그것의 일부를 ML로 대체할 수 있는지에 대해 브레인스토밍을 해라

- 여기에서 사용자 인터페이스 요소를 뛰어넘어 생각해봐라

- 응용 프로그램의 일부를 기계 학습으로 바꾸면 어떤 이점이 있을까?에 대해 생각해봐라

- 이를 위해 어떤 종류의 데이터를 수집하겠나

- 데이터를 수집하고 있나? 그렇지 않다면, 왜 안하는가?



반응형

'데이터 사이언스 > ML with TF on GCP(Coursera)' 카테고리의 다른 글

1주차 - Quiz 3까지  (0) 2018.10.12
1주차 - Quiz 1까지  (0) 2018.10.02
Comments