AI For Everyone 노트

발생일: 2020.12.07

키워드: Coursera, Andrew Ng, Deep Learning, AI

문제:

코세라의 AI For Everyone 강의를 보고 정리한 노트 (강의 링크)


해결책:

- AI > 머신러닝 > 딥러닝 = Neural Network
    - 딥러닝은 뉴런에서 영감을 받았지만, 사람의 뇌의 동작 방식은 알 수 없음


- 머신러닝의 대부분은 지도 학습(Supervised Learning)
    - Input A 로 B를 매핑하는 것 (A to B mapping)
    - 사람이 1초 안에 판단할 수 있는 것이라면 지도 학습으로 구현 가능

 

- AI 팀과 DS 팀은 다름
    - AI 팀은 머신러닝을 활용한 자동화에 중점
    - DS 팀은 데이터를 분석해서 인사이트를 얻는 것에 중점 (의사 결정, 프리젠테이션 등)
    - 머그컵 판매 사업이라면,
        - DS팀: 데이터를 분석해서 어떤 지역에서 판매가 잘 되는지 분석하고 전략에 도움
        - AI팀: 머그컵 사진을 보고 불량품 파악 자동화


- 직업을 대체하는 것보다는 작업을 대체하는 것이 효율적임


- 비지니스 가치를 올릴 수 있는 곳에 AI를 적용하면 더 가치 있음
    - 즉, 먼저 비즈니스에서 중요한 걸 파악하란 뜻


- 수용가능한 기준을 세워야 함
    - 예: 성능 기준 95%


- 기술을 사는 게 나을까? 팀을 꾸리는 게 나을까?
    - 일반적인 산업에서 필요한 기술(산업 표준)이라면 사는 게 나음
    - 기차 앞에서 뛰지 마라: 산업 표준의 발전 속도가 더 빠르므로
    - 우리 사업에 특화된 것이라면 팀을 꾸리는 게 나음


- AI는 구조적으로 100% 정확도를 달성하기 어렵다
    - 비즈니스에서 의미있는 정확도를 설정해도 큰 도움이 됨


- 스마트 스피커 구현 예
    - "헤이 구글, 10시에 알람 맞춰줘"
        1. 호출 단어 인식: 오디오에서 '헤이 구글'이 있는지 없는지
        2. 음성 인식: '10시에 알람 맞춰줘'를 텍스트로 변환
        3. 의도 인식: 알람, 10시
        4. 명령 실행
    - 명령 만큼의 의도 인식 분류가 필요함
    - 대부분 supervised learning


- 자율 주행 구현 예
    - 역시 supervised learning
    - 예:
        1. 이미지/라이다/레이더 + GPS/MAP
        2. 자동차 인식, 보행자 인식 (이후 방향 예측), 경로 인식, 신호등 인식, 장애물 인식 등...
        3. 모션 플래닝 (가속, 핸들 등)


- Edge Deployment
    - 유저 디바이스에 직접 배포하는 것
    - 네트워크 비용 없이 빨리 응답
    - 예: 자율주행 차량에 탑재, 스마트 스피커에 탑재


- AI 논문 사이트: Arxiv


- 규모가 있는 AI 팀의 구성
    - Software Engineer
    - Machine Learning Engineer
    - Machine Learning Resercher
    - Data Scientist: 데이터로 의사 결정에 도움
    - Data Engineer: 데이터 구성, 접근 관리 등
    - AI Product Manager: 어떻게 빌드할 건지, 구현 가능한지, 가치가 있는지 결정


- AI Transformation Playbook: 훌륭한 AI 회사를 만드는 법
    1. 추친력을 얻기 위해 파일럿 프로젝트 진행
        - 가치보단 성공 가능성에 집중해서 시작
        - 일단 성공을 해서 한 팀에서 지지를 얻는 것이 중요
        - 구글 브레인에서는 음성 인식 팀에 처음으로 딥러닝을 적용함(음성인식은 광고나 검색만큼 가치가 있진 않음)
        - 여기서 성공한 후, 구글 맵 팀 등으로 연결됨. 이후에 온라인 광고까지 적용
        - 파일럿 프로젝트는 단기(6-12개월)에 결과를 보여줘야 함
        - 자체 팀도 좋지만, 처음엔 결과를 빨리 얻고 전문가의 경험을 얻을 수 있으니 외주여도 괜찮음
    2. 자체 AI 팀 구성
        - AI를 company-wide platform 으로 구축할 수 있게 CEO 직속(내지는 비즈니스 유닛과 평행하게) 구성하는 것이 좋음
        - CEO, CTO, CIO 직속일 수도 있고, CAIO 직속일 수도 있음
        - 비즈니스 펀딩을 위해 AI팀을 조직하는 것 아니라, AI 조직을 위해 펀딩을 받은 경우 더 성과가 좋았음
    3. AI 이해를 위한 학습 전파 (Provide broad AI training)
        - 임원 레벨은 4시간 이상, 리더는 12시간 이상 AI에 대해 학습하도록 하는 게 좋음
        - AI 개발자를 채용하는 대신 내부에서 기르는 것도 좋은 방법 (100시간 학습)
        - The smart CLO knows they should curate rather than create (CLO = learning)
    4. AI 전략 수립 (Develop an AI strategy)
        - 전략을 세우는 것이 첫 번째가 아닌 이유는, 먼저 AI를 우리 회사의 비즈니스에 적합하게 적용하는 것을 이해해야 하기 때문
        - AI 선순환 구조를 만드는 것이 중요 (좋은 제품 > 많은 사용자 > 많은 데이터 > 좋은 제품)
        - 검색 같은 것은 기존 업체와 경쟁하기 어렵지만, 스타트업이 새로운 분야에 진입할 때 큰 장점이 됨
            - 양배추와 잡초를 구분하는 트랙터 사업 예
            - 이렇게 하면 defensible company 를 만들 수 있음 (신규 사업자가 진입하기 어려운 구글 같은 회사)
        - AI는 대부분 해당 사업군에 특화된 경우가 많기 때문에, 대형 기술 회사의 AI 기술과 견주어서 지레 겁먹을 필요가 없음
        - 데이터 수집 전략를 세우는 것을 고려
            - 데이터 수집 전략: 무료 에메일, 사진 서비스가 무료로 (광고도 없이) 서비스를 제공하는 이유
            - 통합된 데이터 웨어하우스
        - 네트워크 효과와 플랫폼의 장점을 고려
            - 승자독식 구조의 산업에서는 AI가 큰 도움이 될 수 있음
    5. 커뮤니케이션 (Develop an internal and external communications)
        - AI는 회사와 제품에 변화를 줄 수 있음
        - 투자자: AI 회사로서의 가치를 적합하게 평가할 수 있게
        - 정부: 공익에 도움이 됨 (규제가 많았던 헬스케어, 자율주행 분야...)
        - 소비자/사용자에게 교육해서 인식을 바꿔주는 것도 중요
        - AI 성공 사례는 드물어서, 커뮤니케이션하면 채용에 도움이 됨
        - 내부 커뮤니케이션도 중요: 직원들이 걱정하는 경우도 있어서 안심을 주는 것이 도움이 됨


- AI 팀을 만들려고 할 때 일반적인 위험 (Don't / Do)
    - Don't: AI로 모든 걸 해결하려는 것
        - AI의 한계를 인정하고~
    - Don't: 머신러닝 개발자를 단독으로 2-3명 고용하는 것
        - 비즈니스 전문가와 개발자 한 명의 쌍이 더 나음 (구현 가능 여부와 비즈니스 가치를 모두 고려할 수 있음)
    - Don't: 첫 번째 시도로 AI 프로젝트가 동작할 거라고 기대
        - 한 번에 되는 경우는 잘 없음. 반복된 시도로 성공할 수 있음
    - Don't: 전통적인 방법으로 계획
        - 타임라인과 마일스톤, KPI를 세울 때 AI 팀과 함께 논의
    - Don't: 시작 전 AI 슈퍼스타가 필요할 지 고려
        - 팀을 만들어서 시도해보는 게 좋음


- AI 팀 시작하기
    - 스터디할 팀을 구성하고
    - 브레인스토밍 프로젝트를 시작 (No project is too small)
    - 도움이 필요하다면 ML/DS 엔지니어를 고용
    - AI Leader (VP AI, CAIO, ...)를 고용하거나 임명. 최근엔 CAIO 라는 직급이 많이 생겼다고 함
    - CEO와 AI 전환에 대해 논의 (Key Question: AI를 적용하면 회사의 가치가 높아지거나 효율적이 될까?)


- AI의 한계
    - 성능 이슈 (많은 데이터가 필요함)
    - 과정을 설명하기 어려움
        - 가능한 경우도 있으나 대체로 판단한 과정을 설명하기 어려움
        - 판단의 과정을 표현하는 것도 주요 연구 대상 중의 하나로 진행 중임
        - 사람도 잘 설명하지 못함. (머그컵이 왜 머그컵인지 설명하는 것이 쉽지 않은 것처럼)
    - 편향: 편향된 정보(인종 등)로 학습된 AI
    - AI 시스템에 대한 공격: 일부러 공격하는 경우가 있음


- 편향이 중요한 이유
    - 고용 도구에서 여성이 차별됨
    - 얼굴 인식 도구는 흑인보다 백인을 더 잘 구별함
    - 은행 대출 승인
    - 고정관념에 의한 중독 효과가 발생함 (예: 검색 결과에서 CEO 결과는 항상 백인 남성)


- 편향을 피하는 방법
    - 기술적인 방법
        - 잘 사용되지 않는 단어는 0으로 처리 (이런 단어에서 주로 편향이 발생했음)
        - 데이터가 편향되지 않게 (예: 성별/인종별로 비슷한 비중의 데이터를 사용)
    - 검증 과정을 투명하게. 편향을 이 단계에서 제거할 수 있게
    - 다양한 인종과 성별을 가진 직원으로 팀을 구성


- AI 시스템에 대한 공격
    - 이미지 인식을 방해하는 방법
        - 예: 토끼 이미지 픽셀을 몇 개 변경하면, 책상으로 분류됨
        - 예: 바나나 이미지에 특정 스티커를 보여주면 토스터로 변경됨
    - 사기 감지, 스팸 필터 같은 시스템에서는 특히 중요함

 

----

 

Supervised Learning 구현 기술 예

Computer Vision
- Image Classification/Object Recognition
    - 이미지가 고양이 사진인지
    - Face recognition, 사람 사진인지, 같은 사람의 사진인지 등
- Object Detection
    - 사진에서 차량이나 보행자가 어디에 있는지(영역)
- Image Segmentation
    - 차량과 보행자의 픽셀 단위까지 파악
    - X-ray 사진에서 각 부위 파악
- Tracking
    - 마라톤 비디오에서 사용자의 이동 위치 파악
    - 동영상에서 새의 위치를 파악

Natural Language Processing
- Text classification
    - 이메일 카테고리 분류 (스팸 or 정상)
    - 제품 설명으로 카테고리 분류 (당근마켓 글 등)
    - 감정(Sentiment) 분류 (레스토랑 리뷰를 별점으로 환산)
        - Food was good -> 별점 4점
        - Service was horrible -> 별점 1점
- Information retrieval (정보 반환)
    - 검색 결과에 연관 문서 반환
- Name entity recognition (이름 인식)
    - 문장에서 인물의 이름을 파악
    - 회사 이름, 전화 번호, 지명 등등
- Machine translation
    - 번역
- 자연어 처리의 다른 부분
    - part-of-speech tagging (품사 태깅)
    - parsing
        - 파싱 예: 구문을 의미 단위로 연결
        - [the cat] [on the mat]

Speech
- Speech recognition (speech-to-text)
    - 시간에 따른 음파 분석
    - 최근의 음성 인식 발전은 대부분 딥러닝 덕분
- Trigger word/wakeword detection
    - 헤이 구글
- Speaker ID
    - 화자가 누군지 분석
- Speech synthesis (text-to-speech, TTS)
    - The quick brown fox jumps over the lazy dogs.
        - 알파벳 26자가 다 있는 문장ㅎㅎ

Robotics
- Perception
    - 주변 물체를 인지 (자율 주행차)
- Motion planning
    - 이동할 경로를 찾음
- Control

General machine learning
- Unstructured data (Image, Video, Audio, ...)
- Structured data

 


---

 

Supervised Learning 외 구현 기술 예


Unsupervised learning
- Clustering
    - 식료품점에서 감자를 사는 사용자군을 클러스터링
        - 예: 낮은 가격의 칩을 많이 사는 사람들, 비싼 가격의 칩을 적게 사는 사람들
    - 구글 팀에서는 유튜브 데이터로 비지도 학습을 시켰더니, 고양이 동영상이 많다는 결과를 냈다고 함
- 지도 학습의 단점은 데이터 라벨링
    - 머그컵을 학습시키려고 아이들한테 머그컵 1,000개를 학습시키지 않으니까...
    - 사람의 뇌가 동작하는 방식은 아직 알지 못하지만, 비지도 학습이 도움이 될 수도 있을 듯
    - 현재는 지도 학습에 비해 경제적인 가치가 낮은 편

Transfer learning
- 이미 학습한 모델로 다른 분야를 학습
- 대규모 데이터로 학습한 자동차 인식 모델로 소규모 데이터가 있는 골프카트 인식 모델 학습
- 컴퓨터 비전 쪽에서 특히 많이 사용함

Reinforcement learning
- 행동에 보상을 주는 방식으로 학습
- 아주 많은 데이터가 필요함
- 미디어의 주목을 많이 받긴 했지만, 경제적 가치는 지도학습에 비해 미미함

GANs (Generative Adversarial Network)
- 이미지를 생성하는데 효과적임
- 예: 연예인 이미지를 학습해, 연예인처럼 생긴 이미지를 생성

Knowledge Graph
- 구글 검색 우측에 나오는 인물 정보 (자동으로 생성되는 거였다니..)
- 데이터로 인물 정보를 생성함
    - 출생, 사망, 이력 등
- 영화, 연예인, 호텔, 공항 등의 정보 생성에 사용되고 있음
- 경제적 가치가 높은데 의외로 많이 연구되지 않고 있음

카테고리

분류 전체보기 (723)
About me. (6)
Daylogs (688)
영어공부 (0)
My works - 추억 (29)
비공개 (0)