Chris Choi

Archive for the ‘Tech’ Category

JupyterLab + Altair

leave a comment »

Project Jupyter를 좀 더 편리하게 사용할 수 있게 되었다. 바로 JupyterLab 이다.

Jyputerlab을 사용하기 위해서는 버전 4.3 이상의 Jupyter Notebook이 설치되어 있는지 확인한다.

—————————————————————————————————————————-

jupyter notebook –version

—————————————————————————————————————————-

 

pip로 JupyterLab을 설치한다.

—————————————————————————————————————————-

Pip install jupyterlab

—————————————————————————————————————————-

 

Visualization Library인 Altair와 JupterLab을 함께 사용할 수도 있다. 먼저 함께 설치한다.

—————————————————————————————————————————-

pip install –U altair vega_datasets jupyterlab

—————————————————————————————————————————-

 

JupyterLab을 실행한다. 브라우저가 자동으로 실행된다.

—————————————————————————————————————————-

jupyter lab

—————————————————————————————————————————-

 

Altair는 Dataframe을 기반으로 한다. Chart는 Altair의 기본적인 Object이다.

—————————————————————————————————————————-

import altair as alt // Altair Library를 import 한다.

from vega_datasets import data

 

df = data.seattle_weather() // Seattle 날씨 데이터를 DataFrame에 저장한다.

 

alt.Chart (df).mark_tick().encode ( // ‘mark_tick()’은 1차원 분포도를 그린다. ‘encode()’는 데이터의 채널을 만드는 역할을 한다.

x = ‘precipitation’

)

—————————————————————————————————————————-

 

JupyterLab Altair_Image 1.png

[Image 1]

 

텍스트로 데이터를 확인하려면 JSON으로 변환해 확인할 수 있다.

—————————————————————————————————————————-

charts = alt.Chart (df).mark_tick().encode (

x = ‘precipitation’

)

print (charts.to_json())

—————————————————————————————————————————-

 

alt.Chart (df).mark_bar().encode ( // ‘mark_bar()’는 Bar chart를 그린다.

alt.X (‘precipitation’, bin = True), // x = alt.X (‘precipitation’, bin = alt.Bin(maxbins = 50)),

y = ‘count()’

)

 

JupyterLab Altair_Image 2.png

[Image 2]

 

chart = alt.Chart (df).mark_line().encode (

x = ‘month(date):T’,

y = ‘average (precipitation)’ // 평균 값을 계산한다.

)

print (chart.to_json())

 

alt.Chart(df).mark_line().encode (

x = ‘yearmonth(date):T’,

y = ‘max(temp_max)’

)

 

alt.Chart(df).mark_line().encode (

x = ‘year(date):T’,

y = ‘mean(temp_max)’

)

 

alt.Chart(df).mark_bar().encode(

x = ‘mean(temp_max)’,

y = ‘year(date):O’

)

 

alt.Chart(df).mark_bar().encode (

x = ‘mean(temp_range):Q’,

y = ‘year(date):O’

).transform_calculate(

temp_range = “datum.temp_max – datum.temp_min”

)

—————————————————————————————————————————-

Advertisements

Written by Chris Choi

July 18, 2019 at 8:23 pm

Posted in Tech

Tagged with , ,

자동화와 효율성

leave a comment »

‘자동화’와 ‘효율성’. 기업들이 좋아하는 단어다. (효율성 대신 ‘생산성’이라는 단어를 사용해도 무방하다.) 후자가 목표라면 전자는 과정이다. 자동화를 통해 효율성을 높이려는 시도는 자연스러운 일이다. 다만 자동화를 통해 효율성을 ‘감시’한다면? 각 Task에 소요되는 시각을 정확히 측정한다. Task의 결과 역시 정량적으로 측정한다.

Cogito는 실시간으로 전화 통화 내용을 기반으로 점수를 매긴다. 고객과 상담사의 통화 톤을 분석한다. 고객의 입장에서 만족스러운 전화 상담을 제공하는 데 도움이 될 것이다. 하지만 상담사 입장에서는 일거수일투족이 평가되고 감시받는다는 느낌을 받을 수 있다. 그 기준은 물론 함께 합의한 것은 아니다. 판단은 AI가 한다.

Written by Chris Choi

July 18, 2019 at 12:13 pm

Posted in Tech

NVIDIA AI Conference 2019

with one comment

2017년과 2018년에 이어 NVIDIA AI Conference에 참석했습니다. 기업 인수와 신규 칩셋 등 NVIDIA의 최신 소식을 접할 수 있었고, NVIDIA와 국내 기업들이 협업을 흥미롭게 살펴볼 수 있었습니다.

 

[Link 1. ‘NVIDIA Deep Learning Day 2017’]

[Link 1. ‘NVIDIA AI Conference 2018’]

 

(덧붙인 내용은 이탤릭으로 표시했습니다.)

 

[Video 1. ‘I AM AI: GTC 2019 Kickoff’ 출처: NVIDIA YouTube Channel]

 

Keynote (Marc Hamilton, VP of Solutions Architecture and Engineering)

방콕의 한 호텔입니다. 실제 모습이 아닙니다. 실제 모습으로 착각할 수 있을 만큼 정교한 시각화입니다. 호텔을 건설하기 전에 시각화를 통해 창문, 빛, 반사, 그림자, 조형물의 색상, 소재 등을 시뮬레이션 해 볼 수 있습니다.

 

NVIDIA CEO Jensen Huang 벤쿠버에서 열린 ‘SIGGRAPH 2018’ 컨퍼런스의 Keynote 발표 영상으로, NVIDIA Turing GPU Architecture 기반의 데모를 시연하는 장면입니다. , 명암의 변화에 집착했던 레오나르도 빈치가 르네상스 미술에 획을 그은 것처럼, 21세기의 NVIDIA 여러 영역 중에서도 Graphics 변혁을 이끌고 있는 합니다. 모든 액션이 실시간으로 처리됩니다.

 

[Video 2. ‘SIGGRAPH 2018 – NVIDIA CEO Jensen Huang – Reinventing Computer Graphics’ 출처: NVIDIA YouTube Channel]

 

AI는 2030년에 이르면 Global GDP 기준 16조 달러를 기여할 것으로 예측됩니다. Smart city, Healthcare 등 모든 산업에 영향을 미치게 돌 것입니다. NVIDIA는 ‘Inception Program’을 통해 4천 개 이상의 Startup을 지원하고 있습니다.

CPU + GPU Architecture로 많은 난제들을 해결해 왔습니다. 2006년에 출시된 CUDA GPU는 이후로 열 차례 Version release를 통해 속도와 에너지 효율성을 개선하며 성장을 이어가고 있습니다. GPU를 사용하는 Super Computer의 수가 1년 사이 25% 증가했으며, 1위와 2위를 비롯한 다수의 Super Computer가 NVIDIA GPU를 사용하고 있습니다. GPU 개발자가 늘수록 CUDA App도 늘고 있습니다.

CUDA-X는 이제 모든 플랫폼에서 사용 가능합니다. Workstation, Server, Cloud에 관계가 없으며, Expedia, Twitter, Microsoft 등의 기업들이 CUDA-X를 도입했습니다.

 

NVIDIA AI Conference 2019_Image 1.png

[Image 1. CUDA-X 출처: NVIDIA]

 

Supercomputer에 비해 Hyperscale은 서버 당 속도가 현저하게 낮습니다. 대신 서버 간 연결이 많습니다. 동일한 하드웨어 상에서 소프트웨어 업데이트만으로 세 배의 속도 개선 효과를 거뒀습니다. (HPL-AI, Mixed-precisions) Data Science의 등장으로 Supercomputer 보다는 Supercomputer와 Hyperscale의 중간 정도 서버의 수요가 늘고 있습니다. 가장 빠른 단일 서버인 DGX-2는 AI를 위해 설계되었습니다.

AI Datacenter는 전통적인 Enterprise Datacenter와 다릅니다. 엄청난 컴퓨팅을 소화할 수 있는 모델을 만들어야 합니다. 96개의 DGX를 모은 DGX SuperPOD는 Supercomputer 중 22위에 올랐습니다.

 

RAPIDS, GPU Accelerated Platform for Data Science (이상문 전무, NVIDIA)

RAPIDS는 GPU를 이용해 Data Science를 수행하기 위한 Library입니다. Data Science의 Pipeline을 End to End로 구현할 수 있습니다. cdDF, cdML, cdGraph 등의 기능을 활용해 Data Preparation, Model Training, Visualization을 수행합니다.

 

NVIDIA AI Conference 2019_Image 2.png

[Image 2. Data Science Pipeline with GPUs and RAPIDS 출처: NVIDIA Developer Blog]

 

함수들과 Machine Learning 알고리듬이 Library화 되어 있습니다. csv 파일을 로드하는 code입니다.

 

import cudf

gdf = cudf.read_csv(‘path/to/file.csv’)

for column in gdf.columns:

print(gdf[column].mean())

 

기존에는 GPU에서 CPU로 데이터를 보내 연산을 했지만, 이제는 GPU 상에서 연산을 수행할 수 있습니다.

 

Deep Learning Research of NAVER Clova for AI-Enhanced Business (하정우 리더, NAVER)

HDTS Hybrid Dnn Text to Speech 기술로 Clova는 유인나 배우님의 목소리를 합성해 낼 수 있었습니다. 단 네 시간의 음성 녹음만으로 가능했습니다. 그 밖에도 Speech enhancement를 통한 배경 잡음 제거, 상대편 음성 제거 등을 구현했습니다. Google Dupex와 유사한 식당 예약 서비스도 시작했습니다.

특정 인물이 나오는 화면만 편집해 보여 주는 Auto Cut, 특정 인물만을 Cropping 한 Auto Cam도 Clova가 구현한 기술입니다.

 

Kakao OCR Inference 성능 최적화 (이현수, Kakao)

OCR은 Detection Model과 Recognition Model로 구성됩니다. TensorFlow Model을 TensorRT로 변환했습니다.

TensorFlow 모델을 Export 합니다. 복수 개의 Type을 사용할 수 없으므로 Cast를 사용할 수 없으며, Data type을 통일합니다. 가변 Input보다 고정 Input으로 처리하는 것이 좋습니다.

FP32, FP16은 큰 차이가 없으나, INF8은 정확도가 떨어질 수 있어 Network Quantization이 필요할 수 있습니다.

결과적으로 Detector는 4~5배 개선되었고, GPU Memory는 절반 수준으로 사용하게 되어 효율성이 높아졌습니다. Recognizer는 1.5배 가량 개선되었습니다. 개선이 크지 않은 이유는 이미지의 사이즈 자체가 작아 Inference 최적화에 어려움이 있었기 때문입니다.

Written by Chris Choi

July 3, 2019 at 11:38 pm

Posted in Tech

Tagged with ,

10 Breakthrough Technologies by Bill Gates

with one comment

매년 MIT Technology Review‘10 Breakthrough Technologies’를 발표합니다.

 

  • Robot dexterity
  • New-wave nuclear power
  • Predicting preemies
  • Gut probe in a pill
  • Custom cancer vaccines
  • The cow-free burger
  • Carbon dioxide catcher
  • An ECG on your wrist
  • Sanitation without sewers
  • Smooth-talking AI assistants

 

10가지 기술 중 건강과 환경에 관한 기술 세 가지를 소개해 드립니다.

 

Predicting preemies

온타리오 공대 교수인 Carolyn McGregor는 이전에는 충분히 활용하지 못했던 심장 박동 수, 호흡 수, 체온, 혈압, 혈중 산소 수준 등의 데이터 흐름을 분석해 미숙아의 감염 여부를 선제적으로 대응하는 데 활용했습니다.

그런데 출산 전에 미숙아 여부를 알 수는 없을까요? 한 해에 1,500만명에 이르는 미숙아가 태어나고, 그 중에서 안타깝게도 사망으로 이어지는 태아도 적지 않다고 합니다. 정밀 검사를 위해 감염의 위험이 있는 양수 검사를 하기도 합니다. 스탠포드大의 Stephen Quake는 산모와 태아에 위험이 없는 미숙아 여부 검사를 개발하고 있습니다. 저비용의 혈액 검사로 산모의 혈액 내 RNA의 변화를 측정하는 방식입니다. 고가의 초음파 측정과 비교해도 출산 예정 일자와 미숙아 여부 측정의 정확도는 뒤지지 않습니다.

 

Gut probe in a pill

제목은 기억 나지 않지만, 어린 시절 TV에서 본 외화 시리즈가 하나 생각납니다. 박사와 탐험가가 몸을 축소시켜 인체 곳곳을 탐험하는 내용이었습니다. 꿈 같은 이야기가 현실이 될 지도 모르겠습니다. 캡슐로 인체를 분석하는 기술입니다.

EED Environmental Enteric Dysfunction 같은 장 기능 장애로 인해 수백만 명에 이르는 저소득층 국가의 아이들이 정상적인 성장에 어려움을 겪고 있습니다. 기존에는 소아에게 마취를 하거나 관을 삽입해 검사를 해야 했으며, 경제적 부담도 컸습니다. 물론 치료 역시 쉽지 않았습니다. 이제는 카메라와 라이트가 포함된 알약 형태의 기기를 삼켜 검사를 용이하게 하고, 비용을 낮춰 부담을 덜게 하는 시도를 하고 있습니다. 단, 무선은 아니며, 선을 통해 전력을 공급하며 카메라가 찍은 장 내 영상과 사진을 받게 됩니다.

 

Carbon dioxide catcher

기후 변화는 이제 인류의 과제가 되었습니다. 그 중에서도 CO2는 지구 온난화의 주범으로 꼽힙니다. CO2의 배출량을 줄이는 일은 좀처럼 진전이 없으며, 마냥 기다릴 수만은 없습니다. 근원적인 해결책이 되지는 않더라도, 배출된CO2를 재활용하는 기술이 꾸준히 연구되고 있습니다.

공기를 통과시켜 CO2를 흡수합니다. 수분을 통과시켜CO2를 수집해 합성 연료를 만들거나, 매탄을 만들어 탄산 음료 회사에 판매합니다. Carbon EngineeringClimeworks가 선두 주자입니다. Bill Gates는 Carbon Engineering에 투자했습니다.

 

Quality of Life

인류가 그 동안 ‘Quantity’, ‘양’에 초점을 맞춰 왔다면, 이제는 ‘Quality’, ‘질’의 차례입니다. Bill Gates가 선정한 10대 기술은 의료, 환경 등 인류의 ‘삶의 질’을 향상시키는 데 초점이 맞춰져 있습니다. Bill & Melinda Gates Foundation이 지향하는 방향입니다.

 

[Video 2. ‘Q&A with Bill Gates, 2019 Breakthrough Technologies’ 출처: MIT Technology Review YouTube Channel]

Written by Chris Choi

March 11, 2019 at 12:54 am

Satya Nadella and Microsoft

leave a comment »

한 때 Tech 업계의 최강자 중 하나였던 Microsoft. 2000년대 들어서는 명성이 퇴색했습니다. Apple, Facebook, Google 등의 기업들이 언론의 중심을 차지하고 있을 때, Microsoft를 찾아 보기는 어려웠습니다. 그것이 끝은 아니었습니다. 2018년 말, Microsoft는 Apple을 2위로 끌어 내리며 시가 총액 1위 기업으로 올라섰습니다.

 

Satya Nadella and Microsoft_Image 1.png

[Image 1. Microsoft의 최근 5년 추가 출처: Google]

 

Satya Nadella

Microsoft가 다시금 최강자로 올라설 수 있었던 계기를 한 두 가지 이유로 설명하기는 어렵습니다. 하지만 분명한 점은 Satya Nadella가 불러온 ‘변화’는 Microsoft의 DNA를 되살렸다는 것입니다. $40 즈음의 주가는 Satya Nadella 취임 이후 $120 수준까지 반등했습니다.

오랜 시간 동안 Microsoft 하면 떠오르는 것은 Windows, Microsoft Office였습니다. 이제는 다릅니다. Microsoft의 Cloud 서비스인 Azure는 전체 매출의 3분의 1을 차지할 정도로 Microsoft의 중요 사업 중 하나가 되었습니다. 그것은 당연한 전략적 수순입니다. Mobile化라는 트렌드 앞에 Windows 위주의 전략은 어울리지 않습니다. 前 CEO인 Steve Ballmer는 Nokia의 스마트폰 사업부를 인수함으로써 탈 Windows 전략을 추진했습니다. Software는 물론 Hardware 역량까지 필요로 하는 영역에 도전했지만 실패했습니다. Satya Nadella의 결정은 현명했습니다. Office를 Cloud로 제공하는 변신은 Microsoft의 유연성을 보여 주는 대목입니다.

 

Acquisition

이 기간 동안 Microsoft는 Minecraft, LinkedIn, GitHub 등의 기업들을 인수했습니다.

 

How I Work

NVIDA의 CEO인 Jensen Huang은 빠른 의사 결정을 중요하게 생각합니다.

 

Rene Haas, a senior executive at British semiconductor design company ARM, recalls six-hour meetings where Nvidia’s general managers would offer the CEO status updates for their lines of business. If Huang didn’t like what he heard—a roadblock, a missed goal—he would move to solve the problem then and there. “A head of software, a mid-level engineer, it didn’t matter—he would call those people and bring them to the conference room and determine the root cause of the issue,” Haas says. “If something had to be reprioritized and rescheduled to get it back on track, he would do it in real time, and the rest of the meeting was aborted. It was incredibly liberating. And he would never do it in a way that was diminishing. It might feel like that at the beginning, but then you’d realize that he’s trying to expedite the process by getting the right people in the room.”

‘This Man Is Leading an AI Revolution in Silicon Valley—And He’s Just Getting Started’, Andrew Nusca, Fortune, November 16 2017

 

Satya Nadella도 같은 생각입니다.

 

[Video 1. ‘Microsoft CEO Satya Nadella: How I Work’ 출처: Wall Street Journal YouTube Channel]

 

개방: Linux

Written by Chris Choi

February 18, 2019 at 1:22 am

지하철 독서

leave a comment »

이제는 지하철에서 독서를 하는 사람을 찾기가 쉽지 않다. 더불어 지하철에서 독서를 하기가 쉽지 않다. 왜냐고? 사람이 조금만 많아도 이곳 저곳에서 스마트폰을 들이대니까. 가장 인상 깊은 장면 하나. 마주보고 서 있는 사람들이 스마트폰을 보겠다고 같은 위치에서 팔의 높이만 다르게 스마트폰을 들고 있다. 재미있다. 공간 쟁탈전이다.

Written by Chris Choi

February 8, 2019 at 11:36 pm

Posted in Tech

AlphaStar

leave a comment »

Atari, Mario

Q-Learning Algorithm을 사용했습니다.

 

[Video 1. ‘MarI/O – Machine Learning for Video Games’ 출처: SethBling YouTube Channel]

 

Supervised Learning

DNN Deep Neural Network 이 인간의 플레이를 Input으로 이용해

 

Reinforcement Learning

Reinforcement Learning은 다음의 요소들을 대상으로 합니다.

 

  • Environment: 수행 환경입니다.
  • Agent: Action의 주체입니다.
  • State: 현재의 State를 이해합니다. (Observation) Action으로 인해 변화된 State를 다시 이해합니다.
  • Action: Agent는 가용한 Action 중 현재의 State를 고려해 가장 적절한 Action을 취합니다. Action의 결과로 State가 바뀝니다.
  • Reward: 그 결과로 Reward를 받습니다.

 

 

[Video 1. ‘The Theory of Everything, Demis Hassabis’ 출처: ZeitgeistMinds YouTube Channel]

 

Atari 아케이드 게임과 Mario 게임의 State는 화면입니다. Pixel 상의 RGB를 읽어 State를 이해합니다. Reinforcement Learning의 효율성을 고려해 색상을 Gray화 해서 용량을 줄입니다. 정지 화면을 읽는 것은 아닙니다. 움직임의 방향과 속도, 가속도를 이해하기 위해 이해해야 하므로 4개의 Frame을 읽습니다. OpenAI는 Gym이라는 Toolkit을 제공해 화면을 이해하고 Reinforcement Learning을 할 수 있도록 지원합니다.

다행히 단순한 게임에서 취할 수 있는 Action은 십 여 가지입니다. 각 Action에 대한 ‘Future Reward’를 계산합니다. 당장 얻게 될 Reward가 높은 Action이 최선의 선택은 아닙니다.

Reward는 포인트입니다. Pixel 상의 RGB 변화가 State의 변화입니다.

Agent끼리 대결하며 새로운 전략이 만들어집니다. Reward가 전략의 유불리를 판단합니다.

MDP Markov Decision Process 는 현재의 State가 과거의 State와 Action의 결과이며, 현재 Action을 취할 때 과거의 State와 Action을 고려하지 않는 것을 전제로 합니다. 이 때 미래의 Reward에는 Discount가 존재합니다. Discount가 없다면 State와 Action은 무한대로 이어질 것입니다. 반대로 Discount가 100%라면 바로 다음 Reward가 가장 큰 Action을 선택하게 되먀, Future Reward는 존재하지 않습니다. Discount는 그 사이에 존재하게 될 것입니다.

Reinforcement Learning은 낯선 환경을 이해하기 위한 Exploration과, 이해하고 있는 환경 하에서 Reward를 극대화 하기 위한 Exploitation의 균형을 잡아야 효율성을 극대화 할 수 있습니다.

 

StarCraft

StarCraft는 위의 게임들과는 차이가 있습니다. 정답이 없는 전략을 개발해야 합니다. 장기와 단기 전술의 조화가 필요합니다. 상대와 한 수씩 번갈아 가면서 두는 바둑과 달리 상대와 동시에 수를 둡니다. 경우의 수가 훨씬 더 복잡합니다. Atari 아케이드 게임처럼 게임이 한 눈에 들어오지도 않습니다. 다른 말로 ‘Full observability’가 아닌 ‘Partial observability’입니다. Agent는 화면을 움직이면서 플레이 해야 한다는 의미입니다.

적지 않은 사람들이 DeepMind의 도전에 의구심을 가졌습니다. 하지만 DeepMind는 훌륭한 성과를 보여 주었습니다.

인간이 게임을 하는 조건과 유사하게 했습니다. APM Activity Per Minute 수치도 유사하게 했습니다. (이 점에 대한 논란이 존재합니다.)

AlphaStar 역시 Supervised Learning을 통해 기본적인 장기와 단기 전술을 배웁니다. Unit 리스트와 속성 등을 Input으로 사용하며, 결과로 취해야 할 Action을 내놓습니다.

Reinforcement Learning을 통해 600개의 Agent가 서로 대결을 하며 전략의 수준을 높입니다. Agent는 각각 목적을 다르게 해 전략을 다양하게 활용하도록 합니다.

Written by Chris Choi

January 29, 2019 at 8:15 pm

Posted in Tech

Tagged with ,