■ Essential Cheat Sheets for Machine Learning and Deep Learning Engineers

https://startupsventurecapital.com/essential-cheat-sheets-for-machine-learning-and-deep-learning-researchers-efb6a8ebd2e5


1. Keras 

https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Keras_Cheat_Sheet_Python.pdf


2. Numpy

https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Numpy_Python_Cheat_Sheet.pdf


3. Pandas

basic : https://s3.amazonaws.com/assets.datacamp.com/blog_assets/PandasPythonForDataScience.pdf

https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Python_Pandas_Cheat_Sheet_2.pdf


4. Scipy

https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Python_SciPy_Cheat_Sheet_Linear_Algebra.pdf


5. Matplotlib

https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Python_Matplotlib_Cheat_Sheet.pdf


6. Scikit-learn

https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Scikit_Learn_Cheat_Sheet_Python.pdf


7. Neural Networks Zoo

http://www.asimovinstitute.org/neural-network-zoo/


8. PySpark

https://s3.amazonaws.com/assets.datacamp.com/blog_assets/PySpark_Cheat_Sheet_Python.pdf




■ R Cheat Sheet


1. R Studio Cheat Sheet  https://www.rstudio.com/resources/cheatsheets/

- Data Import Cheat Sheet

- Data Transformation Cheat Sheet

- Sparklyr Cheat Sheet

- R Markdown Cheat Sheet

- RStudio IDE Cheat Sheet

- Shiny Cheat Sheet

- Data Visualization Cheat Sheet

- Package Development Cheat Sheet

- Data Wrangling Cheat Sheet

- R Markdown Reference Guide

- Base R

- Advanced R

- Regular Expressions

- How big is your graph

- eurostat package

- The survminer package

- THe leaflet package


2. ggplot2

https://www.rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf


3. R Studio (dplyr and tidyr)

https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf


4. R Markdown (KO)

https://www.rstudio.com/wp-content/uploads/2016/02/rmarkdown-cheatsheet-kr.pdf


5. R Reference Card for Data Mining

https://cran.r-project.org/doc/contrib/YanchangZhao-refcard-data-mining.pdf


6. Data Analysis the DATA.TABLE way

https://s3.amazonaws.com/assets.datacamp.com/img/blog/data+table+cheat+sheet.pdf

카카오 AI 리포트 Vol.1 (2017 MAR)


01. AI 기술 개발의 역사, 머신러닝과 딥러닝  

- 최초의 AI프로그램, 논리연산가(Logic Theorist), CMU Allen Newell & Herbert A. Simon

  . 첫째, 추론을 통한 탐색

  . 둘째, 경험적 방법론(Heuristics) 도입

  . 셋째, 정보처리언어(IPL, Information Processing Language) 개발

- 탐색과 추론의 시대

- Machine Learning, 기계가 스스로 학습한다

- Deep Learning, 인간 뇌의 정보처리 방식을 흉내낸다


02. AI 규제 동향 및 법적, 윤리적 쟁점

현재 AI 분야에서는 모든 전문가들이 동의할만한 정의가 존재하지 않는다. 다만 AI 분야의 교과서로 알려진 '인공지능: 현대적 접근' 에서 스튜어트 러셀 교슈와 피터 노빅은 인공지능을 정의하려는 시도들을 '인간처럼 사고하고, 인간처럼 행동하고, 합리적으로 사고하고, 합리적으로 행동하는' 네 가지 특징별로 분류한 뒤, '합리적으로 행동하는: 합리적인 에이전트(agent) 접근법'을 채택해 인공지능을 분서했다. 반면 미국 조지메이슨대 매튜 슈어러 교수는 규제 관점에서 볼 때 '특정 기능을 수행할 수 있는- '식의 목적 지향적(goal-oriented) 정의는 AI처럼 급격한 기술 변화가 예상되는 분야에서는 적절하지 않다고 설명한다. - 김명수 (Kakao)


03. 로봇 윤리의 변천사

- 시즌1, 로봇의 책무만을 강조하던 시대

  . 아이, 로봇(I, Robot) - 2004개봉 (주연: 윌스미스, 감독: 알렉스 프로야스)

  . 바이센테니얼 맨(Bicentennial Man) - 2000 개봉 (주연: 로빈 윌리엄스, 엠베스 데이비츠, 샘 닐, 감독: 크리스 콜럼버스)

- 시즌2, 인간과의 공존, 인간의 책임  . 

- 시즌3, 프라이버시와 투명성의 강조

- 시즌4, AI 무기 경쟁 경계와 초지능에 대한 고려


04. 2017년 AI 컨퍼런스 소개

1) The O'Reailly Artificial Intelligence Conference (June 26~29, New York) (September 17~20, San Francisco)

2) Computer Vision and Pattern Recognition (July 22~25, Honolulu)

3) The AI Summit (May 9, London) (September 27, San Francisco) (December 6 New York)

4) ICML, International Conference on Machine Learning (August 6~11, Sydney)

5) NIPS, Neural Information Processing Systems (December 4~9, California)


05. AI관련 팟캐스트 소개

1) The AI Podcast, NVIDIA

2) Concerning AI | Artificial Intelligence

3) Learning Machines 101 

4) The Week in Machine Learning

5) Talking Machines (2016년 9월 방송 종료) NIPS, ICML 등 주요 컨퍼런스 관련 논문 소개



카카오 AI 리포트 Vol.2 (2017 APR)


01. 앤드류 응(Andrew Ng)이 말하는 AI, 경영전략

- 앤드류 응이 지난 3월 바이두를 떠났다.

- AI 개발자들에게 : "논문을 많이 읽고, 스스로 검증하라", "읽은 논문을 토대로 똑같이 따라해서, 똑같은 결과를 스스로 확인하라"

- AI 사업 성공을 위한 4 요소 : ①데이터, ②기획력, ③기획자와 개발자 간의 소통, ④가치 사슬 후속 과정에 대한 세밀한 관리




02. 세상을 바꾸고 싶다면, 딥러

"현재 딥러닝을 하고 있다면 축하한다. 딥러닝을 시작하려고 마음을 먹었다면 축하한다. 만약, 세상을 바꾸고 싶다면, 여기가 바로 그런 곳이다." by 앤드류 응(Andrew Ng)


03. AI, 지능정보기술 개발 및 활용의 바람직한 방향

어떤 이들은 AI 분야에서 구글, 페이스북 등 미국 기업들이 훨씬 앞선 기술력을 보유하고 있고 그 성능을 계속 향상시킬 수 있는 글로벌 플랫폼을 구축해놓은 까닭에 이미 경쟁은 끝난 것이 아니냐고 걱정한다. 그러나 구글, 페이스북, 아마존 등이 모든 산업과 서비스 시장을 전부 독과점한 상황은 전혀 아니다. 골드만삭스가 금융분석 및 거래에서 켄쇼를 사용하듯, 상이한 데이터와 서비스가 필요한 분야에서는 각각 다른 AI 플랫폼이 경쟁할 수 있다. 특히 경쟁 관계에 있는 수많은 국가와 기업들이 모두 극소수 지능정보기술 플랫폼에만 의존하는 균일화된 시장 상황은 형성되기 어려울 것이다. - 권용현 팀장 (미래창조과학부 지능정보사회추진단 기획총괄)


04. 인간의 길, AI 로봇의 길

미래는 유토피아 아니면 디스토피아일까요? 정말 두 가지 답안지 밖에 없는 것일까요? (중략) 어쩌면 뛰어난 AI 로봇 기술을 가진 국가 또는 기업이 헤게모니를 완전히 장악하게 될 것이라는 미래 예상은 조금 틀릴 지도 모르겠습니다. 아마도 뛰어난 AI 로봇 기술과 보다 인간적인(?) 사람들이 사는 국가 또는 기업이 헤게모니를 장악하게 되지 않을까 상상해 봅니다. 이것이 4차 산업혁명의 포장지인 '혁명'을 보는 것이 아닌 핵심 내용인 '기술의 변화'를 보는 것 아닐까요? - 한재권 교수 (한양대학교 융합시스템학과)


05. AI 온라인 강의 모음

1) CS50x Introduction to Computer Science, Harvard University via edX

2) CS101 Computer Science 101, Stanford University via Stanford OpenEdx

3) Programming for Everybody (Getting Started with Python), University of Michigan via Coursera

4) Intro to Data Science, Udacity

5) Introduction to Computational Thinking and Data Science, MIT via edX

6) Intro to Artificial Intelligence, Udacity

7) Machine Learning, Stanford University via Coursera (Andrew Ng)

8) 인공지능 및 기계학습, Kaist via K-mooc  (링크?)

9) Deep Learning for Natural Language Processing, University of Oxford



카카오 AI 리포트 Vol.3 (2017 May)


01. Research - 정수헌, 김대원 : ICML과 NIPS 발표논문 6,163건 메타 분석  (☞ Github)



02. Research - 김진화 : AI연구자들이 열광하는 ICML, NIPS


03. Research - 엄태웅 : 딥러닝 연구의 현재와 미래 part1. (1/2) 

1) Convolutional Network Models

2) Image Segmentation, Object Detection

3) Image, Video, Etc

4) Natural Language Processing, RNNs

5) Speech, Other Domains


04. Industry - 노명철, 이주영 : [AI in kakao] 사진에서 사람을 읽다

- R-CNN (region with convolutional neural network) : 영상에 선택적 탐색(selective search)라는 방법을 적용하여, 객체가 있을 법한 후보 영역(region proposal, RP)을 찾고, 각 RP에 컨볼루션 신경망(convolutional neural network, CNN)을 적용하여 객체를 분류한 뒤, 객체의 위치를 보정하는 방법

- Fast R-CNN : R-CNN의 시간문제를 개선한 방법으로 ROI Pooling (region of interest pooling)이라는 layer를 도입하여 CNN에서 얻어진 feature map의 일부 영역으로부터 정규화된 특징을 추출

- Faster R-CNN : RPN(regional proposal network)을 제안하고 CNN 이후 단계에 연결하여 이전의 방법들에서 사용했던 selective search를 대신함. PRN은 CNN에서 얻은 feature map으로부터 객체가 있을 것으로 보이는 영역을 제안하고 해당 영역은 Faster R-CNN과 도일하게 ROI Pooling을 통해서 정규화된 feature를 추출하고 그 feature로 객체를 판별하고 위치와 크기를 보정

source: 카카오 AI 리포트(Vol. 3)


05. Industry - 최예림 : 산업 현장 속으로 들어간 AI

플랫폼 효과란 시장을 지배하는 강력한 소수의 플랫폼으로의 집중 현상을 의미한다. 예를 들어, 구글은 웹에서의 검색 플랫폼, 이메일 플랫폼, 스마트기기 OS의 플랫폼으로써 막대한 양의 데이터를 수집하고 있다. 결국 이 데이터는 더 나은 성능의 AI 개발 원동력이 되어 다른 소규모 기업과의 격차를 점차 늘린다.


06. AI 유튜브 강의 모음

1) How we teach computers to understand pictures, Fei Fei Li

2) A Path to AI, Yann LeCun

3) Foundations and Challenges of Deep Learning, Yoshua Bengio

4) Deep Reinforcement Learning, John Schulman

5) Introduction to Generative Adversarial Networks, Ian Goodfellow

6) Feedforward neural network, Hugo Larochelle

7) Neural Networks for Machine Learning, Geoffrey Hinton

8) Deep Learning and Neural Net short course, Kevin Duh

9) Deep Learning for Self-Driving Cars, Lex Fridman




How to Write a Great Research Paper  34'24"

- Simon Peyton Jones - Microsoft Research, Cambridge



1. Don't wait to write

- Idea → write paper → Do research

- writing paper is a primary mechanism for doing research



2. Identify your key idea

- goal is to convey an idea to reader

- can you hear the ping

  . many papers contain good idea, but do not distill what they are

  . make certain the reader is in no doubt what the idea is. be 100% explicit

    . ex1. the main idea of this paper is ...

    . ex2. in this section we present the main contributions of the paper...



3. Tell a story

- Imagine you are explaining at a whiteboard

  1) Here is a problem

  2) It's an interesting problem

  3) It's an unsolved problem

  4) Here is my idea

  5) My idea works (details, data)

  6) Here's how my idea compares to other people's approaches

  7) Structure (conference paper)

    . Title (1,000 readers)

    . Abstract (4 sentences, 100 readers)

    . Introduction (1 pages, 100 readers)

    . The problems (1 pages, 10 readers)

    . My idea (2 pages, 10 readers)

    . The details (5 pages, 3 readers)

    . Related work (1-2 pages, 10 readers)

    . Conclusions and further work (0.5 pages)



4. Introduction 

- Describe the problem

- State your contributions 


  → Evidence

   . Your introduction makes claims

   . The body of the paper provides evidence to support each claim

   . Check each claim in the introduction, identify the evidence, and forward reference it from the claim

   . "Evidence" can be: analysis and comparison, theorems, measurements, case studies


 → Contributions should be refutable

     

 → No "rest of this paper is..."

    . Instead, use forward references from the narrative in the introduction.

    . The introduction (including the contributions) should survey the whole paper, and therefore forward reference every important part

      (Bad ex) ‘computer programs often have bugs. It is very important to eliminate these bugs {1,2}.  Many researchers have tried {3,4,5,6.}.  It really is very important’

      (Good ex;)‘consider this program, which has an interesting bug <brief description>. We will show an automatic technique for identifying and removing such bugs.’



5. Related work




6. Put your readers first


   


- The idea 

  . Explain it as if you were speaking to someone using a whiteboard

  . Conveying the intuition is primary, not secondary

 . Once your reader has the intuition, she can follow the details (but not vice versa)

  . Even if she skips the details, she still takes away something valuable



7. Listen to your readers 

- Get your paper read by as many friendly guinea pigs as possible

  . Experts are good

  . Non-experts are also very good

  . Each reader can only read your paper for the first time once! So use them carefully

  . Explain carefully what you want ("I got lost here" is much more important than "Jarva is mis-spelt".)


- Getting expert help

  . A good plan: when you think you are done, send the draft to the competition saying "could you help me ensure that I describe your work fairly?"

  . Often they will respond with helpful critique (they are interested in the area)

  . They are likely to be your referees anyway, so getting their comments or criticism up front is Jolly Good.


- Treat every review like gold dust : Be (truly) grateful for criticism as well as praise



○ Summary


1. Don't wait to write

2. Identify your key idea

3. Tell a story

4. Nail your contributions

5. Related work: later

6. Put your readers first (examples)

7. Listen to your readers


more: research.microsoft.com/~simonpj




F8 2017 Keynote Day 1   1'17'28"


● Topic : AI, VR

● Speaker : Mark Zuckerberg(마크 저커버그, CEO), Mike Schroepfer(마이크 슈로퍼, CTO), Deb Liu(데브 리우, Platform/Market Place 총괄), Rachel Franklin(레이첼 프랭클린, Social VR 총괄), Ime Archibong(이메이 아치봉, Product Partnership 담당), David Marcus(데이비드 마커스, Messaging Product 담당)


- Mark Zuckerberg(마크 저커버그) 발표내용 요약

  . 지난 10년간 Facebook은 Connecting People (Connecting friends and family, 사람들을 연결) 하는데 집중했고, 향후 Building Community (커뮤니티 구축)하는데 집중할 것

  . Augmented Reality는 physical world(현실세계)를 digital(online)와 연결하여 실제세계를 더 나은 방향으로 만들어 줄 것

  . 카메라가 AR의 첫번째 플랫폼이 될 것 (사례: 포켓몬 고, Face Filter)

  . Augmented Reality 주요기술 3가지 : Precise Location(정확한 위치), 3D effect(3D효과), Object recognition (객체인식)


- Camera Effects Platform

  . Frames Studio : Facebook 카메라와 프로필 사진용 프레임을 직접 디자인 할 수 있는 편집기

  . AR Studio (베타) : 증강현실 기술을 기반으로 움직임, 실시간 방송 중 interaction 에 반응하는 애니메이션 효과 제작 가능


- Facebook Spaces : 오큘러스 리프트를 위한 베타 버전, VR앱으로 원격지 친구와도 가상현실 내에서 같은 공간에 있는 것처럼 활용 가능. Cirtual Maker(가상 마커)를 통해 허공에 그림을 그릴 수 있고 셀카봉을 이용하는 것처럼 본인의 가상현실 경험을 사진으로 남기고 Facebook내 공유 가능


- Developer Circles : 개발자라면 누구나 Community 참여 가능하며, 노하우 공유 및 협업 가능


- Places Graph : 전세계 1억 4천만 곳에 대한 장소 정보 데이터를 무료로 제공. 음식점, 공원 등 다양한 장소의 장소이름, 주소, 사진, User Review 정보를 제공


- Identity : Facebook 로그인과 Facebook 메신저를 이용하는 계정을 연동해서 고객 응대 가능


- Facebook Analytics : 무료로 제공되며, Demographic 통계정보 및 User behavior 관련 분석 가능. Machine Learning 및 AI기술을 활용한 Automated Insights(자동화 인사이트) 기능이 새로 추가되어 더 valuable한 정보 제공


- Facebook Messenger

  . Discover Tab : 개인 맞춤형 챗봇을 쉽게 찾을 수 있음. 메신저 앱 내 카메라로 메신저 카드를 스캔하면 선호 브랜드나 Business Page로 연결

  . Chat Extensions : 동종업계 사람들과의 채팅 및 챗봇과도 채팅이 가능

  . AI(인공지능) 비서 M을 통한 delivery.com 을 통해 음식 주문 가능

  . Smart Replies : Business page에서 연락처, 지도, 문연 시간 등 FAQ 응답하는데 유용

  . Hand-over Protocol : 메신저를 통해 개발자들간 소통 가능




F8 2017 Keynote Day 2  1'32'11"


● Topic : Connectivity, AI, VR

● Speakers : Mike Schroepfer(마이크 슈로퍼, CTO), Yael Maguire(야엘 머과이어, Connectivity Lab 총괄), Joaquin Quinonero Candela(호아낀 키뇨네로 깐델라, Applied Machine Learning Director), Michael Abrash(마이클 어브래쉬, Oculus VR 연구원), Regina Dugan(레지나 듀간, Building 8 부사장)


- Connectivity 

  . Facebook은 무선 데이터 전송 분야에서 3가지 경이적인 기록을 세움

    1) MMW(밀리미터 웨이브) 기술 - 13km 떨어진 지점에 36GB/s (초당 36GB) 속도로 데이터 전송

    2) 광회선 분배 기술 - 13km 떨어진 지점에 80GB/s (초당 80GB) 속도로 데이터 전송

    3) MMW(밀리미터 웨이브) 기술 - 비행중인 Cessna 경비행기에 16GB/s (초당 16GB) 속도로 데이터 전송

  . Terragraph System(테라그래프 시스템)을 산호세 다운타운에 시범 운영 중임

  . Tether-tenna(테더테나) : 응급상황에 활용 가능한 무선 인터넷용 소형 헬리콥더


- AI, Artificial Intelligence (인공지능)

  . Caffe2(모바일 활용가능한 AI framework) 를 오픈소스로 제공

  . AI 카메라 탑재 on Facebook, Instagram, Messenger : AI와 Computer Vision기술을 활용하여 피사체와 주변 환경을 인식


- Virtual Reality (가상현실) : 가상현실 동영상 제작이 가능한 Surround 360 Camera (서라운드 360 카메라) 공개


- Augmented Reality (증강현실) : 시각과 함께 청각도 증강하는 Full AR(완전 증강현실) 비전 공개. 가상현실을 현실세계에 투영하는 시스루(see-through) 증강현실 기술 발달에 대해 강조


- Brain-Computer Interface 관련 Building 8의 계획 (Building 8은 Facebook의 미션인 "Connecting the World"에 부합하는 하드웨어 제품 개발에 집중하는 팀)

  . for typing, 뇌를 이용해 컴퓨터/모바일에 문자를 타이핑하는 시스템으로 스마트폰에 100 words/m (분당 100단어)로 입력 가능한 시스템 개발이 목표. wearable sensor 기반 하드웨어로 개발될 것

  . for skin-hearing 피부로 소리를 들을 수 있도록 하는 하드웨어 및 소프트웨어 개발할 것





Artificial Intelligence


Natural Language Understanding @Facebook  22'25"

Making the Facebook Social Graph Semantic  23'50"

Casual 3D Capture  19'10"

Using Machine Translation to Remove Language Barriers on Facebook  21'04"




Virtual Reality


WebVR: Enabling Developers to Build Engaging Cross-Platform VR Content  49'10"

- React VR: Build amazing VR experiences using React  20'50"

- The Making of Facebook Spaces  41'56"

- Early Lessons in Social VR from Oculus Rooms  26'15"

- Crafting Compelling Narratives in VR  47'49"

- VR Together: Adding Social Components to Your VR Apps  41'01"

- VR201: Lessons from the Frontlines  48'35"




Engineering and Open Source


- Litho: A Declarative Framework for Efficient UIs  41"40

- The Evolution of React and GraphQL at Facebook and Beyond  45'23"

- React VR: Build amazing VR experiences using React  20'50"

- Building High-Quality JavaScript Tools  47'07"

- Hack: Compilations @ Scale  21'48"

- Moving Faster: Optimizing Developer Experiences of Facebook Engineers  23'40"

- Improving Android Accessibility with Stetho  18'54"

- How We Shipped Reactions  20'44"

- Building Offline Experiences for Instagram  17'33"

- Surround 360: Beyond Stereo 360 Cameras  34'28"

- 360 Capture SDK: Making VR Social Through Immersive Media Capture  18'02"

- The Evolution of Dynamic Streaming  43'20"

- Delivering Real-Time AI In the Palm of Your Hand  21'02"

- Building for a billion people: Behind the Scenes with Facebook's Product  20'28"




Facebook Platform


- Introduction to the Camera Effects Platform  49'03"

Intro to Building Camera Effects with the AR Studio: Live Demo  44'52"

Making Great Camera Effects  46'00"

Explore the power of the Places Graph  20'59"

Best Practices for Integrating Facebook Technologies into your Product  46'35"

Measure the Complete Customer Journey with Facebook Analytics  45'32"

Facebook Login and Account Kit: Sign up landscape, trends, and product  51'57"

Facebook Analytics: Introducing Automated Insights  17'05"

Powering Mobile Commerce on Facebook  21'02"

Build meaningful customer connections with Facebook  18'53"




Media and Publishers


Media and Facebook  43'18"

What's New with New Feed  18'05"

The Future of Video on Facebook  37'33"

Video Content That Connects  50'23"

Monetizing in a Video-First Environment  44'35"

Fireside Chat: The Future of Media  33'28"




Games


Building Native Games for Facebook Gameroom  21'02"

What's Next for Instant Games  43'00"

Understanding Gaming Video on Facebook  25'30"




Ads & Monetization


Create Fullscreen Experiences On Mobile with Canvas  18'36"

The Future of Monetizing with Audience Network  17'25"

Thinking Beyond the Install  38'41"

Marketing API's: The Automation Advantage, for All  22'48"

Discover New Facebook Advertising Tools  22'38"

Explore the Power of the Pages API  19'52"




Others Videos 


https://developers.facebook.com/videos/?category=f8_2017

- source : Facebook for developers



Precision(정확도)와 Recall(재현율), Accuracy, and etc. 는 알고리즘 및 Machine Learning 모델의 성능을 평가하는 지표로 많이 사용되고,

Confusion Matrix는 Training 을 통한 Prediction 성능을 측정하기 위해 예측 value와 실제 value를 비교하기 위한 표를 일컫는다.


■ 성능지표 및 용어 설명


용어

산출식

설명

 예

Accuracy (TP+TN)/(TP+TN+FP+FN) 탐지율 : 맞게 검출한 비율

실제 악성/정상인지 맞게 예측한 비율

Precision TP/(TP+FP)

정확도 : P로 검출한 것중 실제P의 비율

악성으로 예측한것 중 실제 악성인 샘플의 비율

Recall TP/(TP+FN)

재현율 : 실제 P를 P로 예측한 비율

실제 악성 샘플 중 악성으로 예측한 비율

False Alarm (Fall-out) FP/(FP+TN) 오검출율 : 실제 N을 P로 예측한 비율

실제 정상 샘플을 악성으로 예측한 비율

TPR (True Positive Rate) = Recall TP/(TP+FN)

예측과 실제 모두 P 

실제 악성 샘플을 악성으로 예측한 비율

TNR (True Negative Rate)

TN/(TN+FP)

예측과 실제 모두 N

실제 정상 샘플을 정상으로 예측한 비율

FPR (False Positive Rate) = False Alarm FP/(FP+TN)

실제 N인데 P로 검출

실제 정상 샘플을 악성으로 예측한 비율

FNR (False Negative Rate) FN/(TP+FN)

실제 P인데 N으로 검출

실제 악성 샘플을 정상으로 예측한 비율



■ Confusion Matrix




■ Precision, Recall, and the F measure 관련 참고 영상 (Stanford NLP, Prof. Dan Jurafsky & Chris Manning)




■ 주요 성능지표 산출식




* ref source : https://en.wikipedia.org/wiki/Confusion_matrix




■ UNIX 명령어

* source : https://ko.wikipedia.org/wiki/유닉스_명령어_목록


명령어 설명 분류
admin SCCS 파일 작성 / 관리 SCCS
alias 별칭(Alias) 정의 / 표시 기타
ar 라이브러리 압축 파일 작성 및 관리 기타
asa 캐리지 제어 문자 해석 문자열 처리
at 나중에 명령어 실행 프로세스 관리
awk 패턴 검사 및 처리 언어 문자열 처리
basename 경로 이름 중 디렉터리가 아닌 부분만 반환. (dirname도 참고) 파일 시스템
batch 명령어를 배치 대기열에서 실행하도록 스케줄링 프로세스 관리
bc 임의 정확도 연산 언어 기타
bg 백그라운드에서 잡 실행 프로세스 관리
cc/c99 표준 C 프로그램 컴파일 C 프로그래밍
cal 달력 출력 기타
cat 파일 연결 및 출력 파일 시스템
cd 작업 디렉터리 변경 파일 시스템
cflow C 언어 플로그래프 생성 C 프로그래밍
chgrp 파일 그룹 소유권 변경 파일 시스템
chmod 파일 모드/특성/권한 변경 파일 시스템
chown 파일 소유권 변경 파일 시스템
cksum 파일 체크섬 및 크기 기록 파일 시스템
cmp 두 개의 파일 비교. (diff도 참고) 파일 시스템
comm 두 파일에 일치하는 줄 비교 문자열 처리
command 단순 명령어 실행 셸 프로그래밍
compress 데이터 압축 파일 시스템
cp 파일 복사 파일 시스템
crontab 주기적인 백그라운드 작업 스케줄링 기타
csplit 콘텍스트에 기반하여 파일을 나누기 문자열 처리
ctags 태그 파일 작성 C 프로그래밍
cut 파일 내 각 줄의 선택된 필드를 잘라내기 문자열 처리
cxref C 언어 프로그램의 교차 참조 테이블 생성 C 프로그래밍
date 날짜 및 시간 표시 기타
dd 파일 변환 및 복사 파일 시스템
delta SCCS 파일에 델타 (변경 사항) 적용 SCCS
df 남아있는 디스크 공간 보고 파일 시스템
diff 두 파일 비교 (cmp도 참고) 문자열 처리
dirname 경로 이름의 디렉터리 부분만 반환. (basename도 참고) 파일 시스템
du 파일 공간 사용량 측정 파일 시스템
echo 인수를 표준 출력에 기록 셸 프로그래밍
ed 표준 문서 편집기 문자열 처리
env 명령 호출을 위한 환경 설정 기타
ex 문서 편집기 문자열 처리
expand 탭을 공백으로 바꾸기 문자열 처리
expr 인수를 식으로 받아 출력 셸 프로그래밍
FALSE 거짓 값 반환 셸 프로그래밍
fc 명령 역사 목록 처리 기타
fg 포그라운드에서 잡 실행 프로세스 관리
file 파일 종류 결정 파일 시스템
find 파일 찾기 파일 시스템
fold 긴 줄의 출력 필터링 문자열 처리
fort77 포트란 컴파일러 포트란77 프로그래밍
fuser 하나 이상의 열린 파일이 있는 모든 프로세스의 프로세스 ID 나열 프로세스 관리
gencat 서식 있는 메시지 카탈로그 생성 기타
get SCCS 파일 버전 취득 SCCS
getconf 구성 값 취득 기타
getopts 유틸리티 옵션 파싱 셸 프로그래밍
grep 패턴에 따른 문자열 검색 기타
hash 해시 데이터베이스 접근 방식 기타
head 파일의 처음 부분 복사 문자열 처리
iconv 코드셋 변환 문자열 처리
id 사용자 정보 반환 기타
ipcrm 메시지 큐, 세마포어 집합, 공유 메모리 세그먼트 식별자 제거 기타
ipcs 프로세스 간 통신 기능 상태 보고 기타
jobs 현재 세션의 잡 상태 표시 프로세스 관리
join 공통된 필드를 기반으로 두 개의 정렬된 텍스트 파일 병합 문자열 처리
kill 프로세스 종료 또는 신호 전송 프로세스 관리
lex lex를 위한 프로그램 생성 C 프로그래밍
link 파일에 대한 하드 링크 만들기 파일 시스템
ln 파일 연결 파일 시스템
locale 로케일 관련 정보 취득 기타
localedef 로케일 환경 정의 기타
logger 로그 메시지 셸 프로그래밍
logname 사용자의 로그인 이름 반환 기타
lp 파일을 프린터로 보내기 문자열 처리
ls 디렉터리 내용 나열 파일 시스템
m4 매크로 전처리기 기타
mailx 메시지 처리 기타
make 여러 그룹의 프로그램을 유지 보수, 업데이트, 재생성 프로그래밍
man 시스템 문서 표시 기타
mesg 메시지 허가 또는 거부 기타
mkdir 디렉터리 만들기 파일 시스템
mkfifo FIFO 특수 파일 만들기 파일 시스템
more 페이지 단위로 파일 보기 문자열 처리
mv 파일 이동 파일 시스템
newgrp 새로운 그룹으로 변경 (기능은 sg와 비슷함[1]) 기타
nice 변경된 nice 값으로 유틸리티 호출 프로세스 관리
nl 줄 수 필터 문자열 처리
nm 오브젝트 파일의 이름 목록 쓰기 C 프로그래밍
nohup 터미널을 종료해도 계속 프로세스가 실행되도록 처리 (SIGHUP) 프로세스 관리
od 다양한 형식으로 파일 덤프 기타
paste 파일의 일치하는 줄 병합 문자열 처리
patch 변경 사항을 파일로 적용 문자열 처리
pathchk 경로 이름 검사 파일 시스템
pax 포터블 아카이브 인터체인지 기타
pr 파일 인쇄 문자열 처리
printf 서식 있는 출력물 쓰기 셸 프로그래밍
prs SCCS 파일 인쇄 SCCS
ps 프로세스 상태 보고 프로세스 관리
pwd 작업 디렉터리 출력 - 작업 디렉터리 이름 반환 파일 시스템
qalter 배치 잡 변경 배치 유틸리티
qdel 배치 잡 삭제 배치 유틸리티
qhold 배치 잡 홀드 배치 유틸리티
qmove 배치 잡 이동 배치 유틸리티
qmsg 메시지를 배치 잡으로 보내기 배치 유틸리티
qrerun 배치 잡 반환 배치 유틸리티
qrls 배치 잡 해제 배치 유틸리티
qselect 배치 잡 선택 배치 유틸리티
qsig 배치 잡 신호 전송 배치 유틸리티
qstat 배치 잡 상태 보기 배치 유틸리티
qsub 스크립트 제출 배치 유틸리티
read 표준 입력으로부터 줄 읽기 셸 프로그래밍
renice 실행 중인 프로세스의 nice 값 설정 프로세스 관리
rm 디렉터리 엔트리 제거 파일 시스템
rmdel SCCS 파일로부터 델타 제거 SCCS
rmdir 디렉터리 제거 파일 시스템
sact 현재의 SCCS 파일 편집 활동 출력 SCCS
sccs SCCS 서브시스템을 위한 프론트엔드 SCCS
sed 스트림 편집기 문자열 처리
sh 셸: 표준 명령어 인터프리터 셸 프로그래밍
sleep 특정 주기 동안 실행을 일시 정지 셸 프로그래밍
sort 텍스트 파일의 정렬, 병합, 시퀀스 검사 문자열 처리
split 파일을 여러 개로 나눔 기타
strings 파일 내에서 출력 가능한 문자열 찾기 C 프로그래밍
strip 실행 파일로부터 불필요한 정보 제거 C 프로그래밍
stty 터미널을 위한 옵션 설정 기타
tabs 터미널 탭 설정 기타
tail 파일의 마지막 부분 복사 문자열 처리
talk 다른 사용자와 대화 기타
tee 표준 출력 복제 셸 프로그래밍
test 프로그래밍 식 평가 셸 프로그래밍
time 명령 시간 측정 프로세스 관리
touch 파일 접근 및 수정 시간 변경 파일 시스템
tput 터미널 특성 변경 기타
tr 문자열 전송 문자열 처리
TRUE 참 값 반환 셸 프로그래밍
tsort 토폴로지 방식의 정렬 문자열 처리
tty 사용자의 터미널 이름 반환 기타
type 명령어로 사용하는 경우 이름이 어떻게 해석될지 표시 기타
ulimit 파일 크기 제한 설정 및 보고 기타
umask 파일 모드 작성 마스크 취득 및 설정 기타
unalias 별칭(alias) 정의 제거 기타
uname 시스템 이름 반환 기타
uncompress 데이터 압축 풀기 기타
unexpand 공백을 탭으로 바꾸기 문자열 처리
unget SCS 파일의 이전 취득 취소 SCCS
uniq 파일 내 반복되는 줄 보고 또는 필터링 문자열 처리
unlink unlink 함수를 호출 파일 시스템
uucp 시스템 대 시스템 복사 네트워크
uudecode 이진 파일 디코딩 네트워크
uuencode 이진 파일 인코딩 네트워크
uustat uucp 상태 조회 및 잡 제어 네트워크
uux 원격 명령 실행 프로세스 관리
val SCCS 파일 유효성 검사 SCCS
vi 화면 지향 (시각) 디스플레이 편집기 문자열 처리
wait 프로세스 완료 대기 프로세스 관리
wc 줄, 낱말, 바이트, 문자 수 세기 문자열 처리
what SCCS 파일 식별 SCCS
who 누가 시스템에 있는지 표시 시스템 관리
write 다른 사용자의 터미널에 기록 기타
xargs 인수 목록 구성 및 호출 유틸리티 셸 프로그래밍
yacc yacc C 프로그래밍
zcat 데이터 확장 및 연결 문자열 처리



chmod : 권한 변경

r 읽기 허용, w 쓰기 허용, x 실행 허용 (u 사용자, g 그룹, o 기타, a 전체)

examples: 

chmod 777 filename.txt

chmod -R 777 directory

000 ---- --- ---

111 ---x --x --x

222 --w- -w- -w-

333 --wx -wx -wx

444 -r-- r-- r--

555 -r-x r-x r-x

666 -rw- rw- rw-

777 -rwx rwx rwx


chown, chgrp : user / group 변경

examples: 

chown file12 file12.txt (** file12.txt 파일을 file12 user 권한)

chown -R file12 file12.txt

chgrp file12 file12.txt (** file12.txt 파일을 file12 group 권한)

chgrp -R file12 file12.txt



tar xvzf : tar 압축 풀기

examples:

tar xvzf zipfile1.tar


tar cvzf : tar 압축하기

examples:

tar cvzf zipfile1 .


gzip : gzip 압축하기

examples:

gzip gzfile1.txt (gzfile1.txt.gz 이 생성됨)


gunzip : gzip 압축 풀기

examples:

gunzip zipfile1.txt.gz


unzip : zip 압축 풀기

examples:

unzip zipfile12.zip



■ vi editor

exmaples: 

vi filename.txt (파일이 없는 경우 추가/있는 경우 편집)

vi -R filename.txt (or) view filename.txt (읽기 모드로 실행)

vi +n vip125.txt (파일을 열어 n 행에 위치)

vi -r vip125.txt (손상된 파일 회복)


■ vi editor 명령어

i = 커서 있는 위치에서 입력 모드 전환

I = 커서 왼쪽, 행의 처음에 문자 삽입

a = 커서 있는 줄 끝에서 입력 모드 전환

A = 커서 오른쪽, 행의 끝에 문자 삽입

o = 커서 있는 줄 아래에 빈 줄을 삽입

O = 커서 있는 줄 위에 빈 줄을 삽입

R = 덮어쓰기 모드로 전환

x = 한 문자 삭제

dw = 한 단어 삭제

dd = 한 줄 삭제

D = 한 줄 내에서 커어있는 뒤 내용 삭제

u = 바로 전에 수행한 명령 취소

y = 지정된 영역을 버퍼에 복사

yy = 현재 줄을 버퍼에 복사

v = 단어단위로 블록을 설정

Shift + v = 라인 단위로 블록지정이 가능

p = 버퍼에 있는 내용을 커서 뒤에 삽입

P = 버퍼에 있는 내용을 커서 앞에 삽입

d = 현재 커서가 위치해 있는 단어 복사

Ctrl + f = PageDown과 같은 효과로 한화면 뒤로 넘김

Ctrl + B = PageUp과 같은 효과로 한화면 앞으로 넘김

gg = 화면의 처음으로 이동

G = 화면의 마지막으로 이동

숫자 G = 해당 숫자에 해당하는 LINE 으로 이동

H = 현재 화면의 상단으로 이동

M = 현재 화면의 중단으로 이동

L = 현재 화면의 하단으로 이동

/name = name 문자열 찾기

n = 다음 name으로 이동

N = n과 같으며, 역방향으로 이동

:/name/ = name 문자열 찾기

:w = 지정된 파일에 저장

:wq, :x, ZZ = 지정된 파일에 저장하고 vi를 종료

:q = 저장하지 않고 종료

:q! = 저장하지 않고 강제 종료



■ TensorFlow


텐서플로우(TensorFlow™)는 데이터 플로우 그래프(Data flow graph)를 사용하여 수치 연산을 하는 오픈소스 소프트웨어 라이브러리이다. 그래프의 노드(Node)는 수치 연산을 나타내고 엣지(edge)는 노드 사이를 이동하는 다차원 데이터 배열(텐서,tensor)를 나타낸다. 원래 머신러닝과 딥 뉴럴 네트워크 연구를 목적으로 구글의 인공지능 연구 조직인 구글 브레인 팀의 연구자와 엔지니어들에 의해 개발되었다. 2017년 2월 v1.0이 Release 되었다.


텐서플로우 공식홈 : https://www.tensorflow.org

텐서플로우 블로그 : https://tensorflow.blog/

텐서플로우 한글 GitBook : https://tensorflowkorea.gitbooks.io/tensorflow-kr/



○ Tensor


TensorsFlow는 데이터를 tensor 데이터 구조를 이용하여 표현한다.

tensor는 n-dimensional Array 또는 List 라고 생각해도 무방하다.

TensorFlow에서 tensor는 rank 라는 dimension(차원)의 수로 표현된다. 

즉 Tensor rank는 tensor의 차원 수로, 예를 들어아래 tensor(Python 리스트)의 rank는 2 이다.

t = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]



○ Shape

Shape은 Python의 리스트, 정수형 tuple 또는 TensorShape 클래스(class)로 표현 할 수 있다.
Tensor 차원을 표현할 때 "rank, shape, dimension 수"의 3가지 기호를 사용한다.






○ TensorFlow Dev Summit 2017


1) TensorFlow: Machine Learning for Everyone by Google Developers (4'04")

    

2) Highlights from the 2017 TensorFlow Dev Summit by Google Developers (1'34")


3) Keynote by Jeff Dean, Rajat Monga, and Megan Kacholia (29'55")


4) XLA: TensorFlow, Compiled! by Chris Leary and Todd Wang (48'32")


5) Hands-on TensorBoard by Dandelion Mane (23'47")


6) TensorFlow High-Level APIs: Models in a Box by Martin Wicke (17'12")


7) Integrating Keras & TensorFlow: The Keras Workflow, Expanded by Francois Chollet (18'44")


8) TensorFlow at DeepMind by Daniel Visentin (19'39")


9) Skin Cancer Image Classification by Brett Kuprel (8'39")


10) Mobile and Embedded TensorFlow by Pete Warden (30'44")


11) Distributed TensorFlow by Derek Murray (28'06")


12) TensorFlow Ecosystem: Integrating TensorFlow with Your Infrastructure by Jonathan Hseu (18'08")


13) Serving Models in Production with TensorFlow Serving by Noah Fiedel (19'20")


14) ML Toolkit by Ashish Agarwal (11'28")


15) Sequence Models and the RNN API by Engene Brevdo (32'19")


16) Wide & Deep Learning: Memorization + Generalization with TensorFlow by Heng-Tze Cheng (17'38")


17) Magenta: Music and Art Generation by Doug Eck (13'16")


18) Case Study: TensorFlow in Medicine - Retinal Imaging by Lily Peng (10'37")




○ TensorFlow Fold : Deep Learning with Dynamic Computation Graphs


https://github.com/tensorflow/fold/tree/master




○ 모두를 위한 머신러닝과 딥러닝 강의 (김성훈 교수님)


http://hunkim.github.io/ml/


○ 텐서플로우 강의 (이찬우 님)


https://www.youtube.com/watch?v=a74pFg8paVc



한국에서는 "개발자가 보면 암걸리는 동영상"이라는 제목으로 널리 알려진 "The Expert (Short Comedy Sketch)" - 한국어 자막 있음




Requirements


- Seven Red lines

   . Two with red ink

   . Two with green ink

   . And the rest with transparent


- All of them strictly perpendicular


- One of the lines in the form of a kitten



Solution


 : How to draw seven red lines, all perpendicular, some with green ink, some with transparent ink, and one in the form of a kitten.





■ Web/Internet Technologies


HTTP: The Protocol Every Web Developer Must Know - Part 1

https://code.tutsplus.com/tutorials/http-the-protocol-every-web-developer-must-know-part-1--net-31177


HTTP: The Protocol Every Web Developer Must Know - Part 2

https://code.tutsplus.com/tutorials/http-the-protocol-every-web-developer-must-know-part-2--net-31155


- The communication protocols, languages/APIs, and other mechanisms that enable the internet to function.

- HTTP, Browsers, DNS, HTML/XML, AJAX, etc

- To study you should up an HTTP server and enable basic authentication, HTTPS



■ Algorithm Complexity


List of algorithm general topics

https://en.wikipedia.org/wiki/List_of_algorithm_general_topics


List of Algorithms

https://en.wikipedia.org/wiki/List_of_algorithms


List of Data Structures

https://en.wikipedia.org/wiki/List_of_data_structures


- Big-O notation, Hashtables, Trees, Graphs


● Mathematics

● System Design

● Distributed Systems and Cloud Computing

● Coding



■ Data Science Tutorials  https://www.topcoder.com/community/data-science/data-science-tutorials/


■ ETC References


● Agile software development https://en.wikipedia.org/wiki/Agile_software_development

● Google's Code Style Guide https://github.com/google/styleguide

● Google's Android Style Guide http://source.android.com/source/code-style.html

● CodeJam questions https://code.google.com/codejam/contests.html

● TopCoder: practice questions https://www.topcoder.com/




■ Google Research https://research.google.com/ )


Research papers wirtten by Google engineers

https://research.google.com/pubs/papers.html


Distributed Systems and Parallel Computing

https://research.google.com/pubs/DistributedSystemsandParallelComputing.html


Bigtable: A Distributed Storage System for Structured Data

https://research.google.com/archive/bigtable.html


MapReduce: Simplified Data Processing on Large Clusters 

https://research.google.com/archive/mapreduce.html


The Chubby Lock Service for Loosely-Coupled Distributed Systems

https://research.google.com/archive/chubby.html


The Google File System 

https://research.google.com/archive/gfs.html


Spanner: Google's Globally-Distributed Database

https://research.google.com/archive/spanner.html


Megastore: Providing Scalable, Highly Available Storage for Interactive Services

https://research.google.com/pubs/pub36971.html


Native Client

https://developer.chrome.com/native-client

Regular Expression (정규표현식) 정의 : 문자열에 대한 표현을 메타 문자로 표기하는 것

Regular Expression 실행 : 실제 문자열을 정규표현식과 매칭여부 검증


import re


^

Matches the beginning of a line
문자열의 처음과 일치 (행의 시작)

$

Matches the end of the line
문자열의 마지막과 일치 (행의 마지막)

.

Matches any character
모든 문자와 일치, 개행문자(\n) 제외

\s

Matches whitespace
공백 문자와 매치 (\t, \n, \r, \f, \v)

\S

Matches any non-whitespace character
공백 문자가 아닌 문자와 매치 

*

Repeats a character zero or more times 

0회 이상 반복

*?

Repeats a character zero or more times (non-greedy)
0회 이상 반복 (최소일치)

+Repeats a character one or more times
1회 이상 반복
+?Repeats a character one or more times (non-greedy)
1회 이상 반복 (최소 일치)
[aeiou]

Matches a single character in the listed set
소문자와 일치

[^XYZ]Matches a single character not in the listed set
[a-z0-9]

The set of characters can include a range
범위내에 해당하는 문자, 숫자 (ex. 숫자찾기 - find_num = re.findall('[0-9]+',text) )

(

Indicates where string extraction is to start
( ) 괄호 안의 내용을 그룹화, reference를 생성

)Indicates where string extraction is to end
( ) 괄호 안의 내용을 그룹화, reference를 생성을 종료

 match( )

 문자열의 처음부터 정규식과 일치하는지 확인

 search( )

 정규식과 일치하는지 문자열 전체에서 검색

 findall( )

 정규식과 일치하는 모든 문자열(substring)을 리스트로 반환 

 finditer( )

 정규식과 일치하는 모든 문자열(substring)을 iterator 객체로 반환

 sub( )

 정규식과 일치하면 변경

 split( ) 정규식과 일치하면 split 하여 반환



다운로드가 가능한 정답셋이 있는(labeling 된) 공개 데이터셋 중에서, 신뢰성이 높으며 비즈니스케이스 활용 가능한 학습데이터


1) HTTP CSIC 2010 Dataset for Intrusion detection (Security) - http://www.isi.csic.es/dataset/ 

2) Multi-Source Cyber-Security Events Dataset (Security) - http://csr.lanl.gov/data/cyber1/ 

3) Air Quality Dataset (Public sector) - http://archive.ics.uci.edu/ml/datasets/Air+Quality# 

4) Gas Sensors for Home activity monitoring Dataset (Smart Home) - https://github.com/thmosqueiro/ENose-Decorr_Humdt_Temp 

5) Bank Marketing Dataset (Marketing, Retail) - http://archive.ics.uci.edu/ml/datasets/Bank+Marketing# 

6) Human Activity Recognition using smartphones Dataset (Marketing, Retail) - http://archive.ics.uci.edu/ml/datasets/Smartphone-Based+Recognition+of+Human+Activities+and+Postural+Transitions 

7) Credit Card Client in Taiwan (6 months) Dataset (Marketing, Finance) - http://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients 

8) Online Retail Dataset (Marketing, e-Commerce) - http://archive.ics.uci.edu/ml/datasets/Online+Retail

9) MIMIC (Medical database)  - https://github.com/MIT-LCP/mimic-code  /  https://mimic.physionet.org/about/mimic/ 

Health-related data associated with over 40k patients who stayed in critical care units of Beth Israel Deaconess Medical Center 2001-2012.

Includes information about demographics, vital sign measurements (-1 data point per hour), lab test result, procedures, medications, caregiver notes, imaging reports, and mortality.

 


데이터 과학과 관련된 Coursera 강의 및 Machine Learning 관련 추천 강의 리스트


Machine Learning 

by Stanford University 


- Schedule : 11 Weeks

- Instructors : Andrew Ng

- Link : https://www.coursera.org/learn/machine-learning/

코세라 창업자이자 Machine Learning 의 4대 천황이라 알려진 앤드류 응(Andrew Ng) 교수가 직접 강의하는 코스로 Machine Learning 기본 개념을 쉽게 이해할 수 있다.




The Data Scientist’s Toolbox

by Johns Hopkins University 


- Schedule : 2016 March 14 ~ April 17

- Instructors : Jeff Leek, Roger Peng, Brian Caffo

- Link : https://www.coursera.org/learn/data-scientists-tools/

데이터 분석과 관련된 가장 쉬운 코스로 선수 지식이 없어도 수강하는데 무리가 없다. 





R Programming

by Johns Hopkins University 


- Schedule : 2016 March 21 ~ April 24

- Instructors : Roger Peng, Jeff Leek, Brian Caffo

- Link : https://www.coursera.org/learn/r-programming/

R을 이용해 데이터 분석하는 방법을 다룬다. 프로그래밍 지식이 부족하더라도 부담없이 들을 수 있는 코스이다.





Functional Programming Principles in Scala

by École Polytechnique Fédérale de Lausanne


- Schedule : 7 Weeks

- Instructors : Martin Odersky

- Link : https://www.coursera.org/course/progfun

스칼라 언어의 창시자인 마틴 오더스키(Martin Odersky)가 직접 강의하는 코스로 2014년 9월 진행되었던 강의





* 그 외 Machine Learning, Text Mining 관련 들어볼만한 강의


Web Intelligence and Big Data

by Indian Institute of Technology Delhi



Introduction to Computational Finance and Financial Econometrics

by University of Washington



Natural Language Processing

by Columbia University



Natural Language Processing

by Stanford University



Text Mining and Analytics

by University of Illinois at Urbana-Champaign



Statistics: Making Sense of Data

by University of Toronto







Cognitive Computing(인지컴퓨팅)은 1950년 튜링테스트를 시작으로 꾸준히 발전해 왔는데요, 1997년 IBM에서 개발한 Deep Blue는 체스 세계 챔피언을 이기며, 최초로 사람을 이긴 컴퓨터로 이름을 알렸습니다. 이후에도 IBM은 관련 연구를 지속적으로 수행해왔는데요, 드디어 2011년 IBM이 개발한 슈퍼컴퓨터 Watson이 jeopardy 퀴즈쇼에 출연하여 우승을 하며 본격적인 Cognitive 비즈니스 시대를 열게 됩니다. IT 전문가들은 Watson의 승리를 인공지는 개발사에 큰 획을 그은 역사적 사건으로 평가합니다. (* IBM은 Artificial Intelligence(인공지능) 라는 용어 대신에 Cognitive Computing, Cognitive Business 라는 용어를 주로 사용합니다.)



지금 이순간에도 Cognitive Computing은 지속적으로 발전하고 있는데요, 원동력이 되는 것은 기하급수적으로 증가하는 비정형 데이터 입니다. 2020년이 되면 매일 인당 143GB의 데이터를 생성하며 그 중 85%가 비정형 데이터가 될 것이라고 알려졌습니다.


Watson은 심도있는 자연어이해 기술(NLP)로 데이터 간의 연간관계까지 파악하여 정답을 찾게 됩니다. 또한 정답의 근거를 뒷받침하기 위한 가설 평가를 위해, 수백개의 알고리즘이 동시에 수행되고 스코어링 엔진을 통해 여러 개의 정답 후보 중 가장 정답일 확률이 높은 최종 정답을 도출해내게 됩니다. 알고리즘과 S/W기술 뿐만 아니라 수분내에 수천개의 문서와 문헌을 분석하는 컴퓨팅 파워 또한 Watson의 장점이라고 할 수 있습니다.



기술이 어느정도 성숙단계에 이르러 최근 Watson은 헬스케어, 금융, 로봇/통역, 쇼핑/호텔과 고객서비스 등 전천후로 비즈니스에 본격적으로 활용이 되고 있습니다.


헬스케어에 적용된 Watson은 의사들에게 임상 결과 해석에 도움을 주고, 환자의 진단과 치료를 개선하는데 도움을 주고 있습니다. 특히, 최근에는 뉴욕게넘센터와 유전체 의학 발전을 위한 협업을 통해 한해 1만3천명 이상의 목숨을 빼았는 악성 뇌종양을 가진 환자들을 대상으로 맞춤형 서비스를 제공하고 있습니다. 또한 Cognitive Computing 기술을 활용하여, 신약개발과 치료법 개발 프로세스의 혁신도 이끌고 있는데요, 약품/성분간의 상호작용을 연구하여 Bio 업계에게 청신호가 되고 있다고 합니다. 


금융업계에는 Watson Engagement Advisor가 적용이 되었는데요 DBS Bank의 우수고객을 대상으로 고객의 투자 선호도를 파악하고, 맞춤형 투자정보를 제공하는 맞춤형 자산관리 서비스를 제공하고 있습니다. 


또한 일본의 소프트뱅크와 협업하여 교육/금융/헬스키어/보험/유통시작 공략 뿐만 아니라 3rd party 개발자들을 위한 API와 개발 플랫폼을 제공함으로써 새로운 eco-system 구축에 본격적으로 나섰습니다. 이미 5,000여 스타트업들이 Watson Ecosystem Program을 신청하였고, 500여개 회사가 Watson 기반 솔루션 개발을 시작했고, 100여개 회사들은 이미 솔루션을 출시했습니다. 



Watson과 협력 개발된 소프트뱅크 로봇 페퍼(pepper)는 올해초 CES에 등장해서 많은 주목을 받았는데요, 이처럼 Watson은 하나의 제품이 아닌, 사람과 대화하는 사람을 돕는 역할을 하는 플랫폼으로 eco-system으로 앞으로도 계속 성장해나갈 예정입니다.

앞으로 우리는 Watson을 이용해서 무엇을 더 할 수 있을까요? 


Watson을 기술적으로 더 이해해보고 싶으신 개발자 분들을 위해 Watson의 기술을 조금 더 알아 볼 수 있는 방법과 자료들을 단계별로 공유 드립니다.

[입문] Watson 기술 맛보기 (왓슨의 기술에 대해 소개한 영상)

What is Watson? The Science Behind an Answer (6' 42")



일부 기술적인면에 대해 touch 하면서도, 개발을 업(業)으로 하지는 않으나 조금 더 심도있는 내용을 알고 싶어 하시는 분들을 위해 이해하기 쉽게 만들어진 소개 영상입니다. 이 영상들은 Watson이 자연어로 된 질문을 받고, 답변을 찾아내는데까지 어떤 분석 절차들이 수행되는지에 대해 단계별로 친절하게 소개를 해주고 있습니다. 영어가 조금 어렵다면, Machine Learning 을 통해 자동생성되는 자막을 이용해보세요! 다소 정확도는 떨어지지만 이해하시는데는 도움이 되실거에요.



[초급] Watson 기술 이해하기 (왓슨의 기술에 대해 소개한 영상)

Building Watson – A Brief Overview of the DeepQA Project  (21’ 41”)



Watson 개발을 총괄했던 David Ferrucci가 DeepQA 프로젝트와 Watson의 기술에 대해 직접 프리젠테이션을 하는 영상입니다. David는 Question Answering 시스템과 자연어처리 기술을 기반으로 하는 Watson이 질문을 받고, 답변을 찾아내는 데까지 어떻게 동작하는지, 시스템은 어떻게 구성되었는지에 대해 상세하게 설명을 하고 있습니다. 첫 번째 영상보다는 조금 더 기술적으로 가려운 부분을 긁어주는 친절한 설명서 같은 영상이랍니다. 



[중급] Watson Developer Cloud을 통해 Watson REST API 및 SDK 이용해보기 
(*30일 평가판 무료)  

IBM은 Watson의 API를 전세계 개발자들에게 클라우드 기반으로 무료로 제공하고 있습니다. 어플리케이션을 쉽게 개발할 수 있는 개발자 툴킷(Toolit), 교육자료 등도 제공되고 있고, 개발 중에 궁금한 사항은 Developer Community를 통해 궁금증을 해결할 수도 있답니다.

Watson Developer Cloud 와 Bluemix로 개발 시작하기

Experiment with Watson APIs [한국어]

△ IBM Blumix 개발 포탈 화면


Service Document와 API Reference 
Natural Language Classifier, Speech to Text, Text to Speech, Tradeoff Analytics 등 다양한 분석 기능들을 API 호출로 직접 사용해 볼 수 있고, Node.js 나 Java로 Watson Application을 직접 개발해 볼 수도 있답니다.

- Node.js 로 Watson Application 개발하기
- Java 로 Watson Application 개발하기

Github도 들렀다 가실게요~

Watson 개발자 커뮤니티 


[고급] Watson 관련 논문을 읽으며, IBM의 DeepQA 기술 A-Z 파헤쳐보기 
 
IBM은 2005년부터 Watson 개발을 시작했는데요, IBM의 “DeepQA Research Team”은 Watson의 모태가 되는 엔진 및 알고리즘을 개발한 연구조직입니다. DeepQA 연구팀은 NLP(자연어처리), ML(기계학습), IR(정보추출), KR&R(지식 표현 및 추론), 그리고 CL(제어언어)와 관련된 연구를 수행하며 2009년 2개, 2010년 4개, 2011년 16개, 그리고 2012년에는 무려 22개의 논문을 쏟아냅니다. 모두 Watson에 적용된 기술에 쓰인 논문들이죠. Watson이 Jeoperdy 퀴즈쇼에서 이긴 2011년 이후에도 2013년 9개, 2014년 3개, 2015년 4개 등 지속적으로 논문을 publish 하고 특허를 확보하면서, 지금도 꾸준히 Watson에 적용된 기술과 알고리즘을 발전시키고 있습니다.

△ Watson 을 개발한 Core Technical Team 의 2010년 조직구성


Watson의 내부를 속속들이 파헤쳐 보고 싶다구요? DeepQA팀의 연구원들이 Publish한 논문을 읽어보시면 Watson의 A-Z를 모두 만나보실 수 있답니다. 논문을 읽어보면 실험결과에 대한 재현이 가능하고, Reference 논문을 함께 참고하면 관련 기술의 맥을 파악할 수 있으며, Contribution을 통해 연구/개발자가 성능 향상을 위해 고민한 포인트까지 함께 느낄 수 있다는 장점이 있습니다.

The DeepQA Research Team’s Publications

수십 개가 넘는 논문을 읽기에 시간이 부족하신 여러분들을 위해, Watson이 자연어로 된 질문을 처리하고, 여러 개의 정답 중에 최종 정답을 선정하는 과정에 관련된 흥미로운 논문 몇 편을 추천하여 드립니다. 시간이 날 때 재미있게 읽어보세요! : D

추천 ① Introduction to “This is Watson”, D.A. Ferruchi
IBM Journal of Research and Development (Vol. 56), May/June 2012

추천 ② Question analysis: How Watson reads a clue, A. Lally외 7명
IBM Journal of Research and Development (Vol. 56), May/June 2012

추천 ③ A framework for merging and answer in DeepQA, DC Gonden외 8명
IBM Journal of Research and Development (Vol. 56), May/June 2012


P.S. 진실 혹은 거짓! Watson 2016년 미국 대선 출마 선언! 

왓슨2016닷컴(http://watson2016.com/)에 따르면 Watson은 노숙자의 종식, 전국민적인 의료보호체계, 무료 대학교육의 지지자로, 이 홈페이지는 ‘왓슨2016재단’에 의해 만들어진 것으로 Watson의 미국 대통령 출마를 지지하는 그룹이라고 합니다. IBM Watson 사업 관계자는 “Watson은 대선에 나가지 않는다”고 밝혔고, 현재 의료/교육 부문에서 연구하는데 집중한다고 의견을 표명했다고 알려집니다. 
Watson이 사람을 돕는 역할을 뛰어넘어, 점점 사람의 몫을 해내고 있기 때문에 이렇게 지지자들까지 생겨나고 대통령 출마설까지 생겨난 것은 아닐지… 정말 의미심장한 해프닝입니다. : D

△ 왓슨2016닷컴(http://watson2016.com)의 이미지. 물론 합성이다.




2월 졸업 시즌을 맞이하여 기념, 감사 행사에 빠질 수 없는 꽃다발입니다.

형태, 구성의 기본이 되는 소재를 사용하여 베이직한 라운드형 꽃다발을 만듭니다.




Flower & Leaf


장미(인터레이)        1/2단

장미(헤라)                  3대

심비디움                    1대

카네이션(엘그레코)    6대

튤립                       1/2단

엽란(대)                7~8대


△ 좌 - 엽란(대), 우 - 카네이션(엘그레코)

△ 좌 - 심비디움, 우 - 장미(헤라)

△ 좌 - 장미(인터레이), 우 - 튤립



Color 


핑크



Sub materials


투톤 플로드지, 샤무드끈, 스카치테이프, 리본(2종류)



Arrangement




Shape and Tips


꽃다발 소재준비 : 꽃 바로 아래 잎 두세장을 제외하고, 아래 부분의 잎과 가시 등을 깔끔하게 제거한다.

엽란은 줄기가 휘어있는 방향으로 둥글게 반을 접어 테이프 또는 스템플러로 고정한다.

줄기가 그림과 같이 반시계 또는 시계 방향으로 일정하게 돌아가도록 하며, 

X자로 크로스되지 않도록 주의한다.


섹션 다발은 꽃 주변에 엽란으로 벽을 세우듯 장식하는데,

꽃 → 엽란 1~2장 → 꽃 → 엽란 1~2장 순으로 만들어가며,

이때 그루핑(같은 종류의 꽃을 한데 묶어 장식)하여 잡아줌으로써 각 꽃의 특성이 잘 드러나도록 한다.

섹션 다발은 영국출신의 세계적인 플로리스트 제인패커의 시그니처 디자인이다.



△ 장미(인터레이)로만 구성한 다발



Bel Fiore

January 25, 2016

트렌드 컬러인 로즈쿼츠(연핑크) 와 세레니티(연블루)의 부드러운 색채를 담아 장식합니다.

컬러를 중점으로 하며 기법은 화기꽂이 입니다.





Flower & Leaf


장미(샤만트)    6대

리시안서스 W  1/2단

옥시페탈룸       1/3단

히아신스 P       3대

라넌큘러스 P    1/2단

레몬잎              4~5대

서귀나무          1/4단

유칼립투스       1/3단



△ 좌 - 히아신스, 우 - 장미(샤만트)

△ 좌 - 옥시페탈룸, 우 - 라넌큘러스

△ 좌 - 레몬잎, 중앙 - 유칼립투스, 우 - 리시안서스



Color 


베이비핑크, 베이비블루



Sub materials


유리화기, 플로랄폼 1/3장, 플로드지




Shape and Tips


중앙에 장미 1송이, 오각형 위치에 5송이 (총 6송이)를 꽂는다.

히아신스는 줄기를 일자로 절단하여 장미 사이 삼각형 위치를 잡아 꽂는다.

리시안서스는 장미와 히아신스 빈공간에 고루 꽂아 장식한다.

소재는 장미 → 히아신스 → 서귀나무, 레몬잎 → 리시안서스 → 라넌큘러스 → 옥시 → 유칼립투스 순으로

비어있는 공간을 메우듯 채워나가며,

각 소재의 높이는 장미를 기준으로 꽃의 얼굴이 크면 장미보다 높게, 작으면 낮게 장식한다.



Bel Fiore

January 15, 2016

# 크리스마스 율마 나무에 오너먼트와 리본 등을 장식하여 생화 트리를 만든다.




Flower & Leaf


율마



Color 


연두, 라임



Sub materials


테라코타 화분, 깔망, 난석, 씻어말린 마사, 오너먼트



Shape & Tip


1) 화분 바닥 구멍에 깔망을 놓고 난석을 1/6 정도 채워준다.

2) 율마를 옮겨 심고, 뿌리가 상하지 않게 자라던 흙을 함께 분갈이 해준다. 줄기가 흔들리지 않도록 흙을 잘 다져준 후, 마사를 올려 마무리한다.

3) 원하는 형태로 율마의 모양을 잡아준다. (동그랗게 2단으로 잡을 수도 있고, 전형적인 A형태의 크리스마스 트리 모양으로 잡아도 된다.

4) 오너먼트를 철사와 리본을 이용하여 장식한다.




November 23, 2015

Bel Fiore

# 목화리스




Flower & Leaf


목화 1단

유칼립투스(파블로)  1/3단

유칼립투스(자이언트)  1/4단

천일홍(화이트)  1/3단

천일홍(피치)  1/3단

솔방울, 긴솔방울  6~8개

버찌나무껍질 1장

오렌지칩  7~8개

계피가지  2개


△ (좌)솔방울, 긴솔방울, (우) 목화솜


△ (좌) 버찌나무 껍질, (우) 계피가지


△ (좌) 천일홍(화이트, 피치), (중앙) 유칼립투스-자이언트, (우) 유칼립투스-파블로



Color 


브라운, 화이트, 핑크



Sub materials


갈색리스, 웨이퍼리본, 스트라이프리본, 샤무스리본, 롤철사, 글루건



Shape & Tip


1) 목화솜 6개를 리스에 일정한 간격으로 붙인다.

2) 유칼립투스(파블로)와 천일홍을 다듬어 작은 묶음으로 5개 정도 준비한다. (길이 8cm내외)

3) 준비한 묶음을 목화솜 사이에 자연스럽게 붙여준다.

4) 유칼립투스(자이언트)의 잎을 낱장으로 잘라 리스 안쪽 바깥쪽에 붙이며 공간을 채운다.

5) 자른 버찌나무껍질과 솔방울, 시나몬은 1개 또는 2개씩 묶어 붙인다.

6) 부서지기 쉬운 오렌지칩을 마지막으로 고루 붙여준다.

7) 리본은 묶어 롤철사로 감아 리스에 고정시킨다.





November 13, 2015

Bel Fiore

성큼 다가온 가을을 맞이하여 버건디 색상의 꽃과 가을 열매 소재를 적절히 믹싱한 핸드타이드




Flower & Leaf


미니장미(레이더붐) 1/2단

카네이션(마리포나) 5대

맨드라미 1대

리시안서스 1/2단

스토크 1/2단

맨드라미(플라밍고 훼더) 1/3단

세이지 1/2단

레몬잎 1/3단

다정금 열매 1/3단



Color 


진핑크, 보라



Sub materials


코팅크레프트지 네츄럴

핑크 수아맘 리본,

라피아끈

주자리본

샤무드 리본



Shape & Tip


줄기를 한쪽 방향으로 감아 나선형으로 핸드타이드를 잡는다.

전면형 다발은 계단형으로 층을 주며 잡는 것이 포인트이다.

줄기가 곧고 단단한 스토크와 레몬잎으로 시작하여 세이지 → 장미 → 카네이션 등 순으로 만든다.

레몬잎과 필러소재인 플라밍고 훼더를 꽃과 꽃 사이에 넣으며 잡으면 꽃이 뭉쳐보이지 않으며, 볼륨감을 살릴 수 있다.




October 16, 2015

Bel Fiore

중세 느낌의 화기에 여러 품종의 장미를 사용하여, 로맨틱하고 여성스러운 느낌을 살린 화기꽂이




Flower & Leaf


장미(카탈리아)  1/3단

리시안서스(라벤더)  1/2단

석죽  1/2단

신지매  1/3단

소국(다이아)  1/3단

기린초  1/4단

서귀나무  1/4단

미스티블루  1/6단

애정목  1/6단

유칼립투스(폴리)  1/6단



Color


옐로우, 연보라



Sub materials 


엔틱호박화기, 플로랄폼 1/2장



Shape & Tip


꽃꽂이 순서 : 장미 → 서귀나무 → 리시안서스 → 애정목 열매 → 소국 → 신지매, 기린초 → 석죽 → 미스티블루 → 유칼립투스(폴리)


장미(카탈리아)를 2~3송이씩 그루핑하여 꽂는다. 

플로랄 폼을 약간 가릴 정도로 서귀나무를 넣고 리시안서스는 장미와 동일하게 그루핑하여 꽂는다. 

애정목은 열매가 늘어지는 선을 살려준다. 

신지매, 기린초는 길게 꽂아 내추럴한 느낌을 살린다.

다이아와 석죽으로 빈 공간을 채우되 색이 한 곳에 모이지 않도록 골고루 꽂아준다.



September 21, 2015

Bel Fiore



Flower & Leaf


수국 1대, 장미(타라) 1단, 카라 5대, 용담 1단, 아스크레피아스 1/2단, 엽란 2대




Color


옐로우, 블루




Sub materials


유리로즈볼, 플로랄폼 1/3 장



Shape & Tip


보색관계의 색상대비는 서로의 채도를 높여주어 색을 더욱 선명하고 뚜렷하게 보이는 효과를 주는데, 

무더운 여름 파랑색과 노랑색의 대비로 실내에 시원하고 청량한 느낌을 줄 수 있다.


- 유색 화기보다 유리 화기가 시원하고 깨끗한 느낌을 준다

- 확실한 대비 효과를 위해, 꽃은 파스텔 톤보다는 원색에 가까운 색을 고른다.

- 여름철은 파랑색, 겨울철은 빨강색을 추천한다.

- 꽃을 믹스하지 않고 모아꽂기(그루핑)하면 손쉬운 장식으로 큰 효과를 얻을 수 있다.

- 길이는 줄기(꽃의 얼굴 길이는 포함하지 않고)가 볼의 가장 큰 지름 길이로 한다.

- 소재에 따라 길이를 2cm 차이를 주어 용담, 아스크레피아스는 장미, 수국보다 약간 높게, 카라는 포인트 꽃으로 5cm 정도 높여 꽂는다.




July 2015

Bel Fiore

+ Recent posts