Crowdsource by Google: Building better products for everyone with machine learning

머신 러닝에 대해 들어 봤지만 무엇입니까? "기계 학습"은 컴퓨터가 몇 가지 예를보고 기술을 습득 할 수있게하는 기술입니다 규칙 세트 대신에

기계 학습을 통해 일상적인 작업을보다 쉽게 ​​수행 할 수 있습니다 좋아하는 사진 검색, 어떤 언어로든 사람과 대화하고 전 세계 어디든 가고 싶은 곳으로 정확하게 이동할 수 있습니다 기계는 어떻게 배우나요? 기계 학습에서 컴퓨터는 일련의 데이터를 통해 공통 패턴을 찾고 식별하고 학습합니다 예를 들어 컴퓨터에 많은 자동차 이미지를 보여 주면 어떤 그림에서든 자동차를 인식하는 방법을 배울 수 있습니다 우리가 보여주는 다양한 자동차 이미지는 더 잘 인식됩니다

따라서 Crowdsource 앱에 대한 귀하의 기여가 중요합니다 컴퓨터가 배울 수있는 정확한 예를 만들고 확인하는 데 도움이됩니다 이는 모든 사람에게 혜택을 줄 수있는 기능을 활성화합니다 이미지 레이블을 확인하면 Google 포토 및 Google 렌즈와 같은 앱이 사진을 분류하고 물체를 식별하는 데 도움이됩니다 문장의 정서에 라벨을 붙이면 Google지도 및 Google Play에서 사용자 언어로 리뷰를 구성하는 데 도움이됩니다

번역을 확인하면 Google Translate가 귀하의 언어로보다 정확한 번역을하도록 도와줍니다 덕분에 좋아하는 앱이 모두에게 도움이됩니다 전 세계 크라우드 소싱 커뮤니티의 일환으로 귀하의 국가 및 전 세계의 기고자들과 함께 수백만의 사례를 제공하고 있습니다 귀하의 답변은 수천 명의 다른 사용자의 답변과 결합되어“최상의”답변을 결정합니다이를“지상 진실”이라고합니다

실제 기술은 특정 기술을 습득 할 수있는 패턴을 찾는 기계 학습 모델에 적용됩니다 사진에서 자동차를 식별하는 방법 또는 한 언어에서 다른 언어로 번역하는 방법 등이 있습니다 기계가 배우는 것은 주어진 데이터에 의해 제한됩니다 세계의 작은 지역에서 온 이미지로 이미지 인식 알고리즘을 개발하면 세계의 해당 부분에서만 객체를 인식합니다 사진과 같은 앱이 모든 사람에게 잘 작동하려면 세계 각지의 이미지를 사용하여 기계를 훈련시켜야합니다

Crowdsource를 사용하면 교육 데이터에서 지역, 언어 및 의견을 나타냅니다 커뮤니티에 참여해 주셔서 감사합니다!

Google Cloud Platform: learn Big Data | Machine Learning

안녕하세요, 저는 PUE의 Google Cloud Certified Instructor 인 Mauro Pazienza입니다 Google Cloud Platform에 데이터 엔지니어링을 소개하고, 그것은 4 일 코스입니다

참가자에게 제공되는 교육 설계 및 건축에 대한 실용적인 소개 Google Cloud Platform의 데이터 처리 시스템 프리젠 테이션, 데모 및 실습 랩의 조합을 통해, 참가자들은 디자인 방법을 배우게됩니다 데이터 처리 시스템, 종단 간 데이터 파이프 라인 구축, 데이터를 분석하고 기계 학습을 수행합니다 이 과정은 구조와 구조를 다룹니다 및 스트리밍 데이터 타겟 이 과정에서는 참가자들에게 다음과 같은 기술을 가르칩니다

Google Cloud Platform에서 데이터 처리 시스템 설계 및 구축, 구현하여 일괄 처리 및 스트리밍 데이터 처리 Cloud Dataflow에서 데이터 파이프 라인 확장, 매우 큰 데이터 세트에서 비즈니스 내부를 파생시킨다 Google BigQuery를 사용하여 Machine Learning 모델을 사용하여 교육, 평가 및 예측할 수 있습니다 그리고 매우 중요한 목표는 Tensorflow와 클라우드 머신 학습 Spark and Machine Learning 및 Dataproc을 사용할 수 있습니다 이 훈련은 Google Cloud Platform 데이터 엔지니어 인증

Deep Learning to Solve Challenging Problems (Google I/O'19)

[음악 재생] 제프 딘 : 오늘 여기에 와서 기쁩니다 어떻게 내가 깊은 학습과 어떻게 볼 수 있는지 정말 어려운 문제를 해결하는 데 사용할 수 있습니다

세상이 직면 해있다 그리고 나는 내가 제시하고 있다고 지적해야한다 Google의 많은 다른 사람들의 작업 그래서 이것은 많은 연구에 대한 광범위한 관점입니다 우리가하고있는 일

그것은 순수한 일이 아닙니다 그래서 먼저, 나는 모두가 알아 차렸을 것입니다 기계 학습이 중요 해지고 있습니다 기계 학습 연구에 더 많은 강조점이 있습니다 기계 학습을 더 많이 사용합니다

이것은 얼마나 많은 Arxiv 논문을 보여주는 그래프입니다 Arxiv는 사전 인쇄 호스팅 서비스입니다 모든 종류의 서로 다른 연구에 사용됩니다 그리고 이것의 하위 범주입니다 기계 학습과 관련이 있습니다

그리고 2009 년 이후로 우리는 실제로 실제로 게시 된 논문의 수를 늘려왔다 사실 무어의 법칙보다 빠른 지수 적 속도 우리가 얻은 계산 능력의 성장 속도 40 년 동안 익숙해졌지만 이제는 속도가 느려집니다 따라서 우리는 컴퓨팅 성능의 좋은 성장을 대체했습니다 아이디어를 창출하는 사람들이 늘어나고 있습니다 그리고 깊은 학습은이 특별한 형태입니다 기계 학습

실제로 어떤 의미에서 브랜드를 바꾸는 것입니다 매우 오래된 아이디어를 인공 신경 네트워크 이것들은 단순한 훈련 가능한 수학의 모음입니다 상위 계층이 일반적으로 계층으로 구성된 단위 높은 수준의 추상화 구현 하위 계층에서 학습하는 내용을 기반으로합니다 그리고 당신은 이러한 것들을 끝까지 끝낼 수 있습니다

그리고 많은 작업의 기초가되는 알고리즘 우리가 실제로하고있는 것은 40 년 전에 개발 된 35 세 사실 제 동료 인 Geoff Hinton 올해 Yurn LeCun과 함께 Turing Award를 수상했습니다 그리고 Yoshua Bengio는 많은 일을했습니다 그들이 지난 30 ~ 40 년 동안 한 일입니다 그리고 실제로 아이디어는 새로운 것이 아닙니다

그러나 변화된 점은 30 ~ 40 년 동안 놀라운 결과를 얻었습니다 전에는 장난감 문제지만,하지 않았다 이러한 접근법을 작동시킬 수있는 계산 자원이 있어야한다 실제 대규모 문제에 그러나 약 8 ~ 9 년 전부터, 우리는 정말로 충분한 계산을하기 시작했습니다

이러한 접근법은 잘 작동합니다 그래서 신경망이 무엇인지 생각해보십시오 정말 복잡한 기능을 배울 수 있습니다 입력에서 출력으로 매핑 이제는 추상적으로 들리는군요

당신은 y가 x 제곱 또는 무엇인가와 같은 것처럼 함수를 생각합니다 하지만 실제로 이러한 기능은 매우 복잡 할 수 있습니다 아주 원시 형태의 데이터로부터 학습 할 수 있습니다 따라서 이미지의 픽셀을 취할 수 있습니다 신경망을 예측하여 예측한다

이미지에있는 것과 같은 범주 형 레이블 표범 그건 내 휴가 사진 중 하나야 오디오 웨이브 폼에서 말한 내용의 사본을 예측합니다 얼마나 추워? 당신은 하나의 언어로 입력을받는 것을 배울 수 있습니다 -여보세요, 잘 있었 니? 그 문장이 번역 된 출력을 예측하라 다른 언어로

[프랑스어로 말하기] 너는 더 복잡한 일들을 할 수있다 이미지의 픽셀을 받아 캡션을 만듭니다 이미지를 설명합니다 그것은 단지 범주가 아닙니다 그것은 단순한 문장과 같습니다

특이한 종류의 자동차 위에 치타가 누워있다 어쨌든 그 우선 순위는 매우 낮아야합니다 그리고 컴퓨터 비전 분야에서, 우리는 신경망 덕분에 큰 발전을 이루었습니다 2011 년에는 스탠포드 이미지 넷 (Stanford ImageNet) 매년 개최되는 대회인데, 이기는 입장은 신경망을 사용하지 않았다

그것은 지난 해였습니다 이기는 입장은 신경망을 사용하지 않았습니다 26 %의 오류가 발생했습니다 그리고 그 콘테스트에서 우승했습니다 우리는이 일을 알고 있습니다

그것은 사소한 일이 아닙니다 그래서 인간은 약 5 % 오류는 구별해야하기 때문에 1,000 개의 서로 다른 카테고리 중 하나 개 그림처럼, 너는 어떤 말을해야만하는지 40 종의 개가 그것입니다 그래서 완전히 사소한 것은 아닙니다 그리고 2016 년에, 예를 들면,이기는 입장은 3 % 오류를 얻었다 그래서 이것은 거대한 근본적인 도약 일뿐입니다

컴퓨터 비전에서 컴퓨터는 기본적으로 2011 년에 볼 수있게되어서 우리는 꽤 잘 볼 수 있습니다 그리고 그것은 모든 종류의 것들을위한 거대한 파급 효과를 가지고 있습니다 컴퓨터 과학뿐만 아니라 세상에서 하지만 기계 학습 및 컴퓨팅의 응용 프로그램과 비슷합니다 우리 주변의 세상을 인식하는 것

승인 그래서 나머지 이야기는 내가 가고있어 어떤 방식 으로든 틀을 잡을 수는 있지만, 2008 년에는 미국 국민 아카데미 공학부는이 14 개의 목록을 발표했습니다 21 세기의 거대한 엔지니어링 과제 그리고 그들은 많은 전문가들을 모았습니다

서로 다른 많은 도메인에서 그리고 그들은 모두 집단적으로 나타났습니다 이 14 가지 목록과 나는 당신이 이것들이 실제로 꽤 어려운 문제 그리고 우리가 그들 모두에 진전을 이룬다면, 세상은 더 건강한 곳이 될 것입니다 우리는 더 안전한 장소를 가질 수 있습니다 우리는 과학적 발견이 더 많을 것입니다

이 모든 일은 중요한 문제입니다 제한된 시간이 주어지면, 내가 할 일은 굵은 글씨로 이야기하고 있습니다 Google 연구에 초점을 맞춘 프로젝트가 있습니다 빨간색으로 나열된 모든 항목에 표시됩니다 그러나 나는 다른 것에 대해서 이야기하지 않을 것입니다

그리고 그것은 이야기의 나머지 부분을 둘러 보는 종류입니다 우리는 우리가 들어가기 만하면됩니다 나는 우리가 복원과 개선으로 시작한다고 생각한다 도시 기반 시설 권리

우리는 도시가 설계되었다는 것을 안다 – 도시의 기본 구조 꽤 오래 전에 디자인되었습니다 하지만 몇 가지 변화가 있습니다 그것의 첨단에 정말 어떻게 극적으로 변화시킬 것인가? 우리는 도시를 디자인하는 것이 좋습니다 특히, 자치 차량 상업적 실용성에 직면 해있다 이것은 Alphabet의 Waymo 동료들로부터 온 것입니다

그들은 거의 10 년 동안이 공간에서 일해 왔습니다 자치 차량의 기본 문제 너 주위에 세상을 알아야 해? 원시 감각 입력, 빛 같은 것들 [INAUDIBLE] ,, 카메라, 레이더, 그리고 다른 종류의 것들 그리고 당신은 세계와 사물의 모델을 만들고 싶습니다 당신 주위에 있고 그 물건이 무엇인지를 이해하십시오 그것은 보행자인가, 아니면 기둥인가? 움직이는 차인가? 이게 뭐야? 그리고 나서 짧은 시간도 예측할 수있게됩니다

그 차가 1 초 안에 어디에서 흘러가는지, 어떤 행동에 대한 일련의 결정을 내리십시오 당신은 목표를 성취하기 위해 취하고 싶습니다 어떤 문제없이 A에서 B로 가라 깊은 학습 비전 덕분입니다 기반 알고리즘과 모든 센서 데이터의 융합 우리는 실제로 세계의지도를 만들 수 있습니다

이게 이해입니다 우리 주변의 환경과 실제로 이러한 것들이 현실 세계에서 작동하도록하십시오 이것은 먼 꿈에서 멀리 떨어져있는 것이 아닙니다 Waymo는 실제로 약 100 대를 운영하고 있습니다 뒷좌석에 승객이 있고 안전하지 않은 애리조나 피닉스 (Arizona) 지역의 앞 좌석에있는 운전자

그리고 이것은 매우 강한 감각입니다 이것은 현실에 아주 가깝다는 것입니다 이제 애리조나는 운전하기 쉬운 자동차 환경 중 하나입니다 그것은 비가 내리지 않는 것과 같습니다 너무 덥기 때문에 많은 보행자가 없습니다

거리는 매우 넓습니다 다른 드라이버는 매우 느립니다 다운타운 샌프란시스코는 더 힘들어, 그러나 이것이 그다지 멀지 않았다는 신호입니다 분명히 비전은 효과적입니다 세계에서 일을 할 수있는 로봇을 만드는 것

보지 못한다면 일을하는 것이 정말 어렵습니다 그러나 당신이보기 시작할 수 있다면, 당신은 실제로 실용적인 로봇 공학을 가지십시오 컴퓨터 비전을 사용하여 그들은 세상에서 행동해야합니다 그래서 이것은 연습하는 로봇의 비디오입니다 물건을 집어 들고, 그 다음에 집어 들고 따기 더 많은 것들을, 그리고 본질적으로 물건을 파악하려고합니다

로봇에 관한 한 좋은 점이 밝혀졌습니다 실제로 센서 데이터를 수집 할 수 있습니까? 많은 로봇들의 경험을 모으고, 집단적 경험을 토대로 집단적으로 훈련하고, 그리고 어떻게하면 더 좋은 모델을 얻을 수 있을까요? 실제로 물건을 파악하고, 그것을 밀어 낸다 로봇에게 그 다음날 그들은 모두 할 수 있습니다 약간 더 잘 잡는 모델로 연습하고, 너와 같은 인간과는 달리 거실의 카펫에 그들은 그들의 경험을 쌓아 두지 않습니다

승인 그래서 2015 년에 특정 파악 작업에 대한 성공률 로봇이 한번도 본 적이없는 물건을 잡는 것 약 65 %였다 우리가 이런 종류의 팔 농장을 사용할 때 – 그게 바로 그 일입니다 나는 그것을 겨드랑이라고 부르기를 원했지만 나는 기각되었다 기본적으로, 많은 경험을 수집하여, 우리는 실제로 꽤 중요한 후원을 얻을 수있었습니다

파악 성공률에서 최대 78 % 그런 다음 알고리즘과 더 많은 세부 작업에 대한 추가 작업을 수행합니다 우리는 이제 96 %의 성공률을 달성 할 수있게되었습니다 권리 그래서 이것은 3 년 동안 꽤 좋은 진보입니다

우리가 뭔가를 선택하지 못한 시간의 3 분의 1에서 사라졌습니다 위로, 그것은 함께 실제로 끈기가 매우 어렵다 사물의 전체 순서와 실제로 로봇을 가지고있다 현실 세계에서 일을하고, 거의 잘 작동하는 것을 파악한다 안정적으로 그래서 흥미 진진합니다

우리는 또한 많은 일을 해왔다 어떻게하면 로봇이 일을 더 쉽게 할 수 있을까요? 그들이 스스로 연습하도록하는 대신, 어쩌면 우리는 그들에게 일을 보여줄 수 있습니다 그래서 이것은 우리 AI 거주자 중 한 명입니다 또한 환상적인 기계 학습 연구를 수행하며, 또한이 로봇의 데모 비디오도 촬영합니다 그리고 여기서 보시는 것은 시뮬레이트 된 로봇입니다

비디오의 원시 픽셀에서 에뮬레이트하려고하는 보고있는 중입니다 그리고 오른쪽에서 몇 가지 시범을 보았습니다 그 비디오 클립을 사용하는 로봇, 누군가 5 초 또는 10 초를 부어서 시도 할 수있는 보강 학습 기반 시험 스스로 부어 올리는 법을 배웁니다 15 번의 시련과 약 15 분의 훈련 후에, 그걸 잘 부어 줄 수 있어요 4 살짜리 아이처럼 말하다

8 살이 아니야 하지만 실제로는 – 노력의 15 분 안에, 그것은 얻을 수있다 성공의 수준까지, 그것은 꽤 큰 거래입니다 승인 거창한 도전에 있었던 다른 분야 중 하나 고급 건강 정보학이었다

어제 기조 연설에서 본 것 같아요 폐암에 관한 연구 우리는 또한 많은 일을 해왔다 당뇨 망막 병증이라고 불리는 안과 질환에 세상에서 실명의 가장 빠르게 증가하는 원인입니다 당뇨병 환자 수는 1 억 1500 만 명입니다

그리고 그들 각각은 이상적으로 매년 상영 될 것입니다 당뇨병 성 망막증이 있는지 알아보기 위해 퇴행성 안 질환으로 때 맞추면 그것은 매우 치료 가능합니다 그러나 당신이 그것을 시간 내에 잡지 않으면, 당신은 전체 또는 부분 시력 손실을 겪을 수 있습니다 그래서 우리가 이 위험에 처한 모든 사람을 선별 할 수 있어야합니다 그리고 네

정기 검진 그리고 그것이 당신이 얻는 이미지입니다 안과 의사로보기 인도에서는 예를 들어 안과 의사 10 만 명 부족 이 질병의 검사에 필요한 양을하는 것 환자의 45 %가 시력 손실을 겪습니다

그들이 진단 받기 전에, 그것은 비극적입니다 완전히 선제받을 수 있기 때문에 그것을 제 시간에 잡으십시오 근본적으로, 안과 의사가 이것을 보는 방식은 그들은이 이미지를보고 등급을 매기 는가? 5 점 척도로 1, 2, 3, 4 또는 5 점 이 작은 출혈 같은 것을 찾고있어 당신이 오른쪽에서 보는 것 그리고 약간 주관적입니다

그래서 두 명의 안과 의사에게 물으면 동일한 이미지를 채점하기 위해, 그들은 점수에 동의합니다 하나, 둘, 3, 4 또는 5, 시간의 60 % 그리고 같은 안과 의사에게 물으면 몇 시간 후에 동일한 이미지를 채점하려면 그들은 그들 자신과 시간의 65 %에 동의합니다 이것이 제 2 차 의견이 의학에서 유용한 이유입니다 왜냐하면 이러한 것들 중 일부는 실제로 꽤 주관적이기 때문입니다

실제로 큰 차이가 있습니다 두 세 사이에 실제로 사라져서 1 년 후에 우리는 당신을 얻는 것이 좋습니다 다음주에 클리닉에 가야 해 그럼에도 불구하고 실제로 이것은 컴퓨터 비전 문제입니다 그래서 천명의 분류 대신에 개와 표범의 일반적인 범주, 당신은 실제로 5 가지 범주를 가질 수 있습니다

당뇨 망막 병증의 수준과 훈련 눈 이미지 모델 및 평가 점수가 있어야하는 것의 그리고 그렇게한다면, 실제로 여러 명의 안과 전문의에게 라벨이 붙은 이미지를 얻는다 또는 일곱 가지를 사용하면 이미 분산 된 분산을 줄일 수 있습니다 동일한 이미지를 평가하는 안과 의사를 참조하십시오 5 명은 2 명이라고합니다

그들 중 2 명은 3 명이라고 말하면서 아마 2 명과 같을 것입니다 3보다 그리고 그렇게한다면, 근본적으로 할 수 있습니다 동등하거나 약간 더 나은 모델을 얻는다 보통의 널 인증 안과 의사보다 이 일을 할 때 큰 도움이됩니다

이것은 2016 년 말에 출판 된 작품입니다 "JAMA"의 저의 동료들에 의해 저술되었습니다 우리는 더 잘하고 싶었습니다 그래서 당신은 실제로, 대신에 – 망막 전문가가 분류 한 이미지를 얻을 수 있습니다 망막 안 질환에 대한 더 많은 훈련을 받았다 그리고 독립적 인 평가를받는 대신에, 당신은 세 망막 전문가를 얻을 각 이미지를위한 공간에서 그리고 본질적으로, OK, 너 모두

판결 번호를 제시해야한다 각 이미지에 대해 어느 정도의 수를 동의합니까? 그리고 그렇게한다면, 당신은 훈련 할 수 있습니다 3 명의 망막 전문의에 대한이 합의의 결과에 그리고 당신은 실제로 모델을 가지고 있습니다 그것은 망막 전문가와 동등합니다 이 지역에서 치료의 황금 표준입니다, 오히려 좋은 모델이 아닌 안과 의사의 의견을 훈련 받았다

그래서 이것은 우리가 해낸 것입니다 당신이 정말로 좋은 품질을 가지고있는 곳에서 태어난 모습 교육 자료 및 그 모델을 훈련시키고 망막 전문가가 모델에 미치는 영향 하지만 다른 좋은 점은 당신이 실제로 가질 수 있다는 것입니다 완전히 새로운 발견

그래서 새로운 사람이 안과 연구 팀에 합류했습니다 따뜻한 이해 운동으로 우리 도구가 어떻게 작동했는지 어제 무대에 오른 릴리 펭 (Lily Peng) 오, 너 왜 가면 보러 가지 그래? 망막 이미지에서 나이와 성별을 예측할 수있다 기계 학습 파이프 라인이 사람이 파이프 라인을 학습하는 기계를 가질 수 있습니까? 그리고 안과 의사는 성을 예측할 수 없습니다 눈 이미지에서

그들은 그것을하는 방법을 모른다 그래서 릴리는 당신이 이걸 보았던 평균을 생각했습니다 동전을 뒤집는 것보다 낫지 않아야합니다 당신은 05를 본다

그 사람은 떠나 갔다 말했다, 나는 그것을 끝내었다 내 AUC는 07입니다 그리고 릴리는, 흠, 이상 하네

가서 모든 것을 확인하고 돌아와 그래서 그들은 돌아와서, 좋아, 몇 가지 개선을했습니다 이제 08입니다 그게 갑자기 사람들을 흥분하게 만들었 어

우리는 당신이 실제로 예측할 수 있음을 깨달았습니다 망막 이미지에서 흥미로운 것들의 전체 무리 특히, 실제로 감지 할 수 있습니다 누군가 자기보고 한 성관계 그리고 당신은 다른 많은 것들을 예측할 수 있습니다 나이와 마찬가지로 수축기 및 이완기에 관한 것들 혈압, 헤모글로빈 수치

그런 것들을 함께 결합하는 것으로 밝혀졌습니다 누군가의 심혈관 위험 예측을 할 수 있습니다 일반적으로 훨씬 더 많은 정확도와 동일한 수준으로 혈액을 채취해야하는 침습성 혈액 검사 24 시간 기다렸다가 실험실 테스트를 다시받습니다 이제 망막 이미지만으로도 그렇게 할 수 있습니다

이것이 새로운 일이 될 수 있다는 진정한 희망이 있습니다 의사에게 가면 얻을거야 당신의 눈을 찍은 사진 그리고 우리는 당신의 눈에 대한 장기간의 역사를 가지고 있습니다 그것으로부터 새로운 것을 배울 수 있어야합니다

그래서 우리는 그것에 대해 꽤 흥분합니다 큰 도전의 많은 부분은 이해에 관한 것이 었습니다 분자와 화학이 더 좋다 하나는 엔지니어가 더 나은 의약품입니다 하지만이 작품은 내가 너에게 보여줄거야

이 다른 것들 중 일부에 적용될 수 있습니다 따라서 양자 화학자들이 할 수있는 것들 중 하나는 분자의 특성을 예측합니다 너도 알다시피,이 물건이이 다른 물건에 묶일거야? 독성이 있습니까? 양자 성질은 무엇입니까? 그리고 그들이하는 일반적인 방법은 정말 계산적으로 비싼 시뮬레이터를 가지고 있습니다 그리고이 분자 구성을 연결합니다 한 시간 정도 기다려

그리고 그 끝에서 결과를 얻습니다 여기 시뮬레이터에서 말한 것들이 있습니다 그래서 그것은 밝혀졌습니다 그리고 그것은 느린 과정입니다 당신은 많은 다른 분자들을 고려할 수 없습니다

네가 좋아하는 것처럼 시뮬레이터를 사용할 수있는 것으로 밝혀졌습니다 신경망을위한 교사로서 그렇게 할 수 있습니다 그리고 갑자기 너는 신경망을 가지고있다

시뮬레이터가 할 수있는 일을 기본적으로 배울 수 있습니다 그래도 빨리 그래서 지금 당신은 약 30 만 배 빠릅니다 그리고 당신은 정확도를 구별 할 수 없습니다 시뮬레이터 대 신경망 출력의 차이

그리고 그것은 완전히 게임을 변화시키는 것입니다 당신이 양자 화학자라면 갑자기 공구가 30 만 번 빨라졌습니다 갑자기 그 말은 너를 의미한다 매우 다른 종류의 과학을 할 수 있습니다

내가 점심 먹으러가는 동안 너는 말할 수있다 아마도 1 억 개의 분자를 스크리닝해야합니다 그리고 내가 돌아올 때, 나는 1,000을 가질 것이다 재미 있을지도 몰라 그래서 그것은 꽤 흥미로운 추세입니다

그리고 나는 그것이 펼쳐질 것이라고 생각합니다 많은 과학 분야에서 또는 엔지니어링 분야에서 비싼 시뮬레이터지만 실제로 훨씬 더 싼 신경망으로 근사치를 배운다 또는 기계 학습 기반 모델 및 얻을 훨씬 빠른 시뮬레이터 승인 과학적 발견 도구를 설계하십시오

나는이 14 번째가 바로 그 느낌이었다 일종의 애매한 잡기는 모든 전문가들의 패널 결정해야 할 소집되었습니다 그러나 기계 학습이 진행된다면 과학적 발견과 공학의 큰 부분을 차지하기 위해, 우리는 기계 학습 알고리즘을 표현하기위한 좋은 도구를 원합니다 그래서 이것이 왜 동기 부여입니까? 우리는 TensorFlow를 만들었습니다 우리는 도구를 갖고 싶었습니다

우리 자신의 기계 학습 아이디어를 표현하는 데 사용할 수있는 나머지 세계와 공유하십시오 다른 연구자들과 기계 학습 아이디어 교환 제품에 기계 학습 모델을 실용화 및 기타 환경 그래서 2015 년 말에이를 발표했습니다 이 Apache 20 라이센스

기본적으로이 그래프 기반의 계산 모델을 가지고 있습니다 전통적인 컴파일러를 사용하여 최적화 할 수 있습니다 최적화를 수행 한 다음 매핑 할 수 있습니다 다양한 장치에 연결합니다 그래서 당신은 같은 계산을 할 수 있습니다

내가 말할 수있는 CPU 또는 GPU 또는 TPUs에 1 분 Eager Mode는이 그래프를 명시 적이 지 않고 암시 적으로 만듭니다 TensorFlow 20에서 제공됩니다 그리고 그 공동체는 Tensor 합리적으로 잘 흐릅니다

그리고 우리는 모든 다른 것들에 흥분했습니다 우리는 다른 사람들이 보았던 측면에서 보면 핵심 TensorFlow 시스템에 기여 재미있는 것을하기 위해 그것을 사용합니다 그래서 꽤 좋은 약혼 종목이 있습니다 상당히 애매한 프로그래밍을 위해 5 천만 다운로드 패키지가 보이는 공정한 번호입니다 마찰의 좋은 표시처럼

그리고 우리는 사람들이 일을하는 것을 보았습니다 어제 기조 연설에서이 점을 언급했습니다 난이게 좋아 기본적으로 피트니스 센터를 짓는 회사입니다 젖소를 위해 100 마리의 젖소들 오늘 이상하게 행동하고 있습니다

Penn State와 International에 연구 팀이 있습니다 탄자니아 열대 농업 연구소 즉, 컴퓨터 학습 모델을 구축하는 것입니다 카사바 필드 한가운데 전화로 장치에서 실행할 수 있습니다 실제로 감지 할 네트워크 연결없이 이 카사바 식물에는 질병이 있는가? 어떻게 처리해야합니까? 이것이 이것이 어떻게 좋은 예라고 생각합니다 우리는 기계 학습이 많은 분야에서 실행되기를 바랍니다

그리고 많은 환경 전 세계의 많은 장소 가끔 너는 연결되어있어 때로는 그렇지 않습니다 많은 경우에 기기에서 실행하고 싶습니다 그리고 그것은 정말로 미래가 될 것입니다

기계 학습 모델을 실행하게 할 것입니다 작은 마이크로 컨트롤러에 이런 모든 종류의 것들이 있습니다 승인 나는 남은 시간을 여행에 데려다 줄거야 일부 연구 프로젝트를 통해 어떻게 그럴 수 있는지 스케치합니다

미래에 함께 적응하십시오 그래서 우리가 원하는 것은 우리가 더 큰 기계 학습을 원한다는 것입니다 모델보다 그러나 그것을 실용적으로 만들기 위해서, 우리는 희소하게 활성화 된 모델을 원합니다 거대한 모델을 생각해보십시오 어쩌면 1,000 개의 서로 다른 부분이있을 것입니다

하지만 당신은 주어진 조각에 대해 20 개 또는 30 개를 활성화합니다 예를 들어, 전체 1,000 세트가 아닌 우리는 이것이 진짜 유기체가 가지고있는 특성이라는 것을 알고 있습니다 그들의 신경 시스템에서 그들의 대부분의 신경 용량 주어진 시점에서 활성화되지 않습니다 그것은 부분적으로 그들이 얼마나 효율적으로 전력을 소비하는지입니다 권리

그래서 몇 년 전에 우리가이 일에서했던 몇 가지 작업 우리가 전문가 계층의 드문 드문 한 혼합이라고 부르는 것입니다 그리고 필수 아이디어는 핑크색 사각형입니다 정상적인 신경망 층입니다 그러나 두 신경망 층 사이에서, 우리는 다른 컬렉션을 삽입 할 것입니다 우리는 전문가라고 부르는 작은 신경망을 사용합니다

그리고 우리는 게이팅 네트워크를 갖게 될 것입니다 그 중 몇 가지를 활성화하는 법을 배우게됩니다 이 전문가들 중 어떤 전문가가 특정 유형의 예제에서 가장 효과적입니다 그리고 전문가는 많은 매개 변수를 가질 수 있습니다 꽤 큰 매개 변수 행렬 일 수 있습니다

그리고 우리는 그것들을 많이 가질 것입니다 그래서 우리는 총 80 억 개의 매개 변수를 가지고 있습니다 그러나 우리는 몇 명의 전문가 만 활성화 할 예정입니다 어떤 주어진 예제에 그리고 당신은 물건을 연결하는 법을 배울 때, 당신은 그 전문가를 사용하는 법을 배우려고 노력합니다

이 특정 사례에서 가장 효과적입니다 그리고 여러 전문가에게 보낼 때, 라우팅 네트워크를 훈련시키는 신호를줍니다 게이팅 네트워크 덕분에이 전문가는 언어에 대해 이야기 할 때 정말 좋습니다 혁신과 연구에 관한 것입니다 왼쪽면에서 보는 것처럼

그리고이 센터 전문가는 말하기에 정말 능숙합니다 선도적 인 역할과 중심적인 역할을 담당합니다 그리고 오른쪽에있는 것은 친절하게 정말 좋습니다 빠른 adverby 것들 그래서 그들은 실제로 매우 다른 종류의 것을 개발합니다

전문 지식 이것에 대한 좋은 점은 이것을 번역 작업에서 하단 행과 비교해보십시오 당신은 근본적으로 상당한 개선을 얻을 수있다 번역 정확도 그것은 거기에 푸른 점수입니다

그래서 한 가지 파란 점 개선은 꽤 중요한 것입니다 우리는 정말로 하나의 푸른 점 개선점처럼 보입니다 그리고이 모든 추가 용량이 있기 때문에, 우리는 실제로 분홍색 층의 크기를 만들 수 있습니다 원래 모델보다 작았습니다 그래서 우리는 실제로 금액을 줄일 수 있습니다

단어 당 사용 된 계산의 약 2 배만큼, 그래서 50 % 더 싼 추론 그리고 훈련 시간은 우리가 단지 이 모든 여분의 수용력을 가져라 그리고 많은 매개 변수로 모델을 교육하는 것이 더 쉽습니다 그래서 우리는 훈련 비용의 약 1/10을 가지고 있습니다 GPU 일수로 승인

우리는 또한 많은 일을 해왔다 AutoML에서 일부 아이디어를 자동화 한 아이디어입니다 기계 학습의 기계 학습 연구원 또는 엔지니어 않습니다 AutoML의 기본 아이디어는 현재 당신은 기계 학습 문제를 해결하는 것에 대해 생각합니다 데이터가있는 곳

몇 가지 계산이 있습니다 ML 전문가가 앉아 있습니다 그리고 그들은 많은 실험을합니다 그리고 그들은 모두 그것을 함께 동요시킨다 GPU 일의 노력을 많이 기울이십시오

그리고 당신은 희망을 갖고 해결책을 얻습니다 그래서 우리가 이것을 다음과 같이 사용할 수 있다면 어떨까요? 실험의 일부를 대체하기위한 더 많은 계산 그 기계 학습 – 기계 학습 경험이 많은 사람 실제로 할 것인가? 그리고 기계 학습 전문가가하는 결정 중 하나는 어떤 아키텍처, 어떤 신경 네트워크 구조 이 문제에 대해 의미가 있습니다 13 층 모델이나 9 층을 사용해야합니까? 모델? 3 개 또는 5 개의 필터가 있어야합니까? 연결을 건너 뛰거나 연결하지 않아야합니까? 그러니 기꺼이 말하면 이걸 가져 가자 레벨 업 및 일부 메타 학습, 기본적으로 모델을 생성 할 수 있습니다 그런 다음 우리가 실제로 신경을 쓴 문제에 대해 그러한 모델을 시험해보십시오

메타 학습의 기본 반복은 여기에 있습니다 우리는 모델을 생성하는 모델을 갖게 될 것입니다 우리는 10 개의 모델을 생성 할 것입니다 우리는 각각의 모델을 훈련 할 것입니다 그리고 우리는 그들이 얼마나 효과적인지 볼 것입니다

우리가 신경 쓰는 문제에 그리고 우리는 그 모델의 손실이나 정확도를 사용하려고합니다 모델을 생성하는 보강 학습 신호로서 우리가 보이지 않는 모델을 조종 할 수 있도록 모델 모델에 대해 잘 작동하고 그게 더 잘 작동하는 것 같아 그리고 나서 우리는 많은 것을 반복합니다 우리가 많이 반복 할 때 우리는 본질적으로 시간이 지남에 따라 점점 더 정확한 모델을 얻을 수 있습니다 그리고 그것은 작동합니다

그리고 그것은 이상하게 보이는 모델을 만들어냅니다 그들은 조금 더 구조화되지 않은 것처럼 당신이 생각하는 모델보다 수도 있습니다 그래서 여기에 우리는이 미친 건너 뛰기 연결을 모두 가지고 있습니다 그러나 그들은 몇몇 아이디어들과 유사합니다 그 기계는 연구자 스스로 학습 안으로 들어왔다

예를 들어, 공진 아키텍처 스킵 연결 구조가 더 체계적입니다 하지만 기본 아이디어는 정보를 원한다는 것입니다 입력에서 출력으로 더 직접적으로 흐를 수있다 중간 정도의 계산을 거치지 않고 레이어 그리고 시스템이 발전한 것 같습니다

그 직관 그 자체 그리고 좋은 점은 실제로이 모델들입니다 꽤 잘 작동합니다 따라서이 그래프를 보면 정확도가 ImageNet 문제에 대한 y 축에 있습니다 그리고 모델의 계산 비용, 여기에 도트로 표시되는 x 축은 x 축에 있습니다

일반적으로이 추세는 어디에서 볼 수 있습니까? 계산 상 비싼 경우 모델에서는 일반적으로 더 높은 정확도를 얻습니다 그리고이 검은 색 점들 각각은 여기에 있습니다 상당량의 노력이 필요하다 최고의 컴퓨터 비전 연구원 또는 기계의 무리에 의해 연구원을 학습하면 당시 출판 된 예술의 상태를 발전 시켰습니다 AutoML을이 문제에 적용하면 보게되는 것입니다

너는 실제로 손의 경계를 넘어선 다 커뮤니티가 만들어 낸 모델을 만들었습니다 그리고 당신은 하이 엔드에서이 작업을 수행합니다 정확성을 가장 중요시하는 곳 계산 비용에 대해 신경 쓰지 않아도됩니다 좀 더 정확한 모델을 얻을 수 있습니다

적은 계산 비용으로 로우 엔드에서는 모델을 얻을 수 있습니다 아주 작은 경우에 훨씬 더 정확합니다 계산 비용 그리고 저는 이것이 꽤 흥미로운 결과라고 생각합니다

그것은 우리가 컴퓨터와 기계를 학습자들이 함께 일하는 이러한 종류의 문제에 대한 최상의 모델을 개발할 수 있습니다 그리고 우리는 이것을 제품으로 바꾸어 놓았습니다 따라서 Cloud AutoML을 클라우드 제품으로 사용합니다 그리고 당신은 자신의 문제에 그것을 시도 할 수 있습니다 그래서 당신이 아마 연구자를 배우는 기계가 많지 않습니다

또는 기계 학습 엔지니어 자신, 당신은 실제로 단지 많은 이미지들을 취할 수 있습니다 하고 싶은 일의 범주 – 어쩌면 당신 귀하의 조립 라인에서 사진을 가지고 있습니다 이 이미지가 어떤 부분인지 예측하고 싶습니다 실제로 고품질 모델을 얻을 수 있습니다 그리고 우리는 이것을 단지 비전 이상으로 확장했습니다

따라서 비디오, 언어 및 번역을 할 수 있습니다 그리고 최근에 우리는 뭔가를 소개했습니다 관계형 데이터를 예측할 수 있습니다 다른 관계형 데이터로부터 이 고객이 주어진 제품을 살 것인지 예측하고 싶습니다

그들의 과거 명령이나 무언가 또한 AutoML 분야의 연구를 계속 진행했습니다 그래서 우리는 진화론의 사용을 바라 보는 연구를하고 있습니다 수색을위한 강화 학습보다는 오히려, 최적화 업데이트 규칙을 학습하고, 단지 비선형 성 함수를 학습하는 것 우리가 [INAUDIBLE] 또는 일부 다른 종류의 활성화 기능을 제공합니다 우리는 실제로 통합에 대한 작업을했습니다

추론 대기 시간과 정확도 모두 당신이 가지고있는 정말 좋은 모델을 원한다고 가정 해 봅시다 7 밀리 초 내에 실행됩니다 가장 정확한 모델을 찾을 수 있습니다 더 많은 것을 사용하여 귀하의 시간 예산 내에서 실행됩니다 복잡한 보상 기능

스트레칭 할 수 있도록 데이터를 늘리는 방법을 배울 수 있습니다 흥미로운 방식으로 가지고있는 라벨 데이터의 양 손으로 직접 작성한 데이터 보완보다 효과적입니다 그리고 우리는 많은 아키텍처를 탐색 할 수 있습니다 이 전체 검색 프로세스를 좀 더 효율적으로 만들 수 있습니다 승인

그러나 우리가 이러한 접근법을 시도한다면 분명합니다 우리는 더 많은 계산 능력을 필요로 할 것입니다 그리고 기계 학습의 진실성 중 하나라고 생각합니다 지난 10 년 동안 더 계산적입니다 힘은 더 나은 결과를 얻는 경향이있다

충분한 데이터가있을 때 그리고 깊은 학습이 정말 좋았습니다 이 도구는 정말 널리 사용되는 도구인가? 많은 다른 문제 영역에서, 이는 전문성에 대해 생각하기 시작할 수 있음을 의미하기 때문입니다 깊은 학습을위한 하드웨어는 있지만 가지고있다 그것은 많은 것들에 적용됩니다

그리고 두 가지 속성, 즉 깊은 학습 알고리즘 하는 경향이있다 하나는 정밀도 감소에 매우 관대하다는 것입니다 따라서 소수점 이하 자릿수로 계산하면, 이 알고리즘의 대부분은 완벽하게 괜찮습니다 6 자리 또는 7 자리의 정밀도가 필요하지 않습니다 그리고 다른 한 가지는 그들이 모두 – 내가 보여준 이러한 모든 알고리즘은 몇 가지 특정 작업 중 매트릭스와 같은 것들 벡터 곱을 곱한다

고밀도 선형 대수학 그래서 당신이 기계, 컴퓨터, 감소 된 정밀 밀도 선형 대수학에 정말 능숙합니다 그런 다음 이러한 기계 학습을 많이 가속화 할 수 있습니다 보다 일반적인 목적에 비해 알고리즘이 상당히 많이 사용되었습니다 범용 CPU가있는 컴퓨터 모든 종류의 일들을 실행할 수 있습니다

GPU는 다소 좋지만 경향이 있지만, 예를 들어, 원하는 것보다 더 높은 정밀도 그래서 우리는 건물에 대해 생각하기 시작했습니다 내가 이런 종류의 생각을했을 때 전문화 된 하드웨어 2012 년 운동 우리는 초기 성공을보기 시작했습니다 음성 인식을위한 심층 신경망의 개발 이미지 인식 및 시작 어떻게 전개 할 것인가에 대해 생각해 보라

우리 제품의 일부 그래서 무서운 순간이있었습니다 우리는 스피치가 실제로 잘되기 시작하면, 그때 우리는 그것을 실행할 수 없었습니다 기기가 충분한 계산 능력을 가지고있다 1 억 명의 사용자가 휴대 전화와 대화를 시작하면 하루 3 분, 연설이라면 그다지 좋지 않습니다

훨씬 더 잘 작동하기 시작합니다 우리가 CPU에서 음성 모델을 실행한다면, 우리는 Google 데이터의 컴퓨터 수를 두 배로 늘릴 필요가 있습니다 센터, 약간 두려워 발사 하나의 제품에서 하나의 기능 그래서 우리는이 전문적인 건물을 생각하기 시작했습니다 우리가 실행하고 싶었던 깊은 학습 알고리즘을위한 프로세서 TPU V1은 생산에 사용되었습니다

2015 년이 실제로 그 사고의 결과 였기 때문에 운동 그리고 당신이하는 모든 쿼리를 기반으로 프로덕션 환경에서 사용됩니다 당신이하는 모든 번역에, 음성 처리, 이미지 교차로, AlphaGo는 이러한 컬렉션을 사용합니다 이것은 실제의 랙이었습니다 AlphaGo 경기에서 경쟁했다

우리가 쓴 작은 보드를 볼 수 있습니다 옆에 기념 그리고 나서 우리는 더 큰 문제를 해결하기 시작했습니다 추측, 우리는 이미 숙련 된 모델을 가지고있다 그리고 당신은 그것을 적용하기를 원하지만 어떻게 실제로합니까? 가속화 된 방식으로 훈련

그래서 TPU의 두 번째 버전 훈련과 추론을위한 것입니다 이것이 TPU 장치 중 하나입니다 그것에 4 개의 칩을 가지고있다 TPU V3에는 4 개의 칩이 있습니다 물을 식혔습니다

따라서 컴퓨터에 물을 넣는 것은 약간 무서워요 하지만 우리는 그렇게합니다 그리고 우리는이 시스템을 설계했습니다 함께 큰 구성으로 구성하려면 호출 포드 그래서 이것은 TPU V2 pod입니다

이것은 수냉식이있는 더 큰 TPU V3 포드입니다 당신은 실제로 기계의 랙 하나를 볼 수 있습니다 학습 돔 실제로 이러한 것들이 실제로 제공됩니다 많은 계산 능력

4 개의 칩이있는 개별 장치 420 테라 플롭스에 상당한 메모리가 있습니다 실제 포드 자체는 최대 100 페타 플롭스의 연산 이것은 꽤 상당한 양의 계산입니다 그리고 정말로 당신이 매우 빨리 기계를 시험 할 수있게 해줍니다 연구 실험 학습, 매우 큰 생산 훈련 대형 데이터 세트에 대한 모델이며, 이것들은 또한 현재 클라우드 제품을 통해 제공됩니다

어제는 베타 버전으로 발표했다고 생각합니다 여기 성능의 열쇠 중 하나 포드의 칩 간 네트워크 상호 연결입니다 실제로 초고속 2D입니다 랩 어라운드 링크가있는 메쉬 그것이 토로 이달의 이유입니다

그리고 그것은 당신이 본질적으로이 것을 프로그램 할 수 있음을 의미합니다 마치 하나의 컴퓨터입니다 그리고 커버 밑의 소프트웨어 계산을 적절하게 분배하는 역할을한다 모든 축소 된 작업을 매우 빠르게 수행 할 수 있습니다 및 방송 운영

예를 들어, 전체 TPU V2 포드를 사용할 수 있습니다 동일한 문제에 비해 79 분 안에 ImageNet을 교육 8 개의 GPU 저렴한 비용으로 27 배 빠른 교육을받을 수 있습니다 V3 포드는 실제로 실제로 훨씬 더 큽니다

ImageNet 모델을 처음부터 교육 할 수 있습니다 2 분 안에 1 백만 개 이상의 이미지 본질적으로 전체 ImageNet 인 교육에서 초당 데이터는 1 초마다 설정됩니다 또한 매우 큰 BERT 언어 모델을 교육 할 수 있습니다 예를 들어, 내가 무대에서 토론 할 때 어제 약 기조 연설에서 76 분 일반적으로 며칠이 걸릴 것입니다 데이터의 상당히 큰 코퍼스에 그리고 그것은 정말로 우리 연구원을 만드는 데 도움이됩니다

ML 생산 시스템의 생산성 향상 더 빨리 실험 할 수있게되었습니다 2 분 안에 실험을 실행할 수 있다면 매우 다른 종류의 과학과 공학 그 같은 실험이 하루 반 정도만 가져 가세요 권리 더 많은 실험을 실행하는 것에 대해 생각해보십시오 더 많은 것을 시도

그리고 이미 사용할 수있는 모델이 많이 있습니다 승인 자, 우리가 이야기 한 아이디어를 생각해 봅시다 그들이 어떻게 어울릴 지 생각해보십시오 그래서 저는 우리가이 커다란 모델들을 원한다고 말했죠

그러나 그들이 희박하게 활성화되도록하십시오 우리가 기계 학습에서 잘못하고있는 것 중 하나라고 생각합니다 우리는 기계 학습 모델을 훈련시키는 경향이 있습니까? 한 가지 일을하는 것 그리고 나서 우리에게는 다른 문제가 있습니다 우리는 그 다른 일을하기 위해 다른 모델을 훈련시키는 경향이 있습니다

그리고 우리는 어떻게 우리가 어떻게 할 수 있을지 생각해야한다고 생각합니다 많은 것을하는 모델을 훈련 시키십시오 보유하고있는 전문 지식을 활용하십시오 많은 일을하면서 새로운 일을 할 수있게 새 작업을보다 신속하고 적은 비용으로 수행하는 방법을 배웁니다 데이터

이것은 기본적으로 다중 작업 학습입니다 그러나 실제로 오늘날의 다중 학습 과제 3 개 또는 4 개 또는 5 개의 작업을 의미하며 수천 또는 수백만 나는 우리가 정말로 더 크고 굵은 생각을하고 싶다고 생각한다 모든 일들에 대해 한 가지 모델을 실제로 사용하는 것에 대해 우리는 걱정한다 그리고 분명히, 우리는 멋진 ML 하드웨어를 사용하여이 대형 모델을 교육하십시오 승인

어떻게 보이나요? 그래서 저는 우리가 모델을 훈련했다고 상상합니다 다른 작업들에 그리고 이러한 다양한 구성 요소를 배웠습니다 때로는 서로 다른 작업에서 공유 할 수있는 때때로 독립적 인, 전문화 된 특정 작업 그리고 이제 새로운 과제가 등장합니다

따라서 AutoML 스타일 강화 ​​학습을 통해, 우리는 경로를 찾기 위해 RL 로그를 사용할 수 있어야합니다 실제로 우리를 얻는이 모델을 통해 그 새로운 작업을위한 꽤 좋은 상태로, 희망적으로 다른 것들과 몇 가지 공통점이 있기 때문에 우리는 이미 배웠습니다 그런 다음 시스템에 용량을 추가 할 수있는 방법이 있습니다 그래서 우리가 정확성에 대해 정말로 염려하는 작업을 위해, 우리는 약간의 용량을 추가하고이를이 작업에 사용하기 시작할 수 있습니다 그 경로를 그 일에 더욱 전문화시켜야합니다

그러므로 희망에 따라 더 정확합니다 그리고 그것이 흥미로운 방향이라고 생각합니다 우리는 어떻게 그런 시스템을 구축 할 것인지 생각할 수 있습니다 현재 가지고있는 모델의 현재 유형보다 모든 예제에서 전체 모델을 완전히 활성화하는 경향이 있습니다 단 하나의 작업을하는 경향이 있습니까? 승인

나는 우리가 기계 사용에 대해 어떻게 생각해야하는지에 관해서 마무리하고 싶다 학습과 모든 다른 장소 우리는 그것을 사용하는 것이 좋습니다 그리고 나는 내가 생각하는 것들 중 하나를 생각한다 회사로서 자랑스럽게 생각하는 것은 작년에 우리가 출판 한 것입니다 우리가 생각하는 일련의 원칙들 우리가 기계 학습을 사용하는 방법에 대해 다른 것들을 위해

그리고 나는이 일곱 가지를 생각합니다 어떤 제품에서도 기계 학습을 사용합니다 또는 설정 우리가 신중하게 생각하는 방법에 대해 우리가 실제로 이 원리를 사용하여 이런 식으로 기계 학습 실제 원리 웹 사이트에는 더 많은 것이 있다고 생각합니다 네가 찾을 수 있다고 생각하지만,이게 정말, 정말로라고 생각해

중대한 그리고 나는이 것들 중 일부가 진화하는 연구 분야 및 원칙 우리가 적용하고자하는 따라서 예를 들어, 2 번을 만들거나 강화하지 마십시오 불공정 한 편견 기계 학습 모델의 편견 다양한 출처에서 얻는 매우 실질적인 문제입니다 교육 데이터에 편향된 것일 수 있습니다

실제 데이터를 교육 할 수 있습니까? 세계는 편향되어있다 우리가 원하지 않는 방식으로 그래서 우리가 적용하고 확장 할 수있는 연구가 있습니다 편견을 줄이거 나 없애려면 어떻게해야합니까? 기계 학습 모델에서 그리고 이것은 몇몇 작품의 예입니다 우리는 편견과 공정성에 대해 해왔습니다

ML 모델을 사용하면서 우리가하려고하는 것은 가장 잘 알려진 관행을 적용한다 우리의 실제 생산 사용뿐만 아니라 편견과 공정성을 이해하는 데 최첨단 기술 향상 그리고 그것을 더 좋게 만든다 결론적으로, 깊은 신경망과 기계 학습은 실제로 세계의 일부를 달려들고 있습니다 내가 생각하는 커다란 도전들 저는 우리가 여러 분야에서 진전을 이루고 있다고 생각합니다

흥미로운 문제가 많이 있습니다 태클을하고 여전히 노력하고 있습니다 그리고 그들은 컴퓨터 과학뿐만 아니라 영향을 줄 것입니다 권리 우리는 인간 노력의 많은 측면에 영향을 미치고 있습니다

의학, 과학, 다른 종류의 것들처럼 그리고 나는 그것이 큰 책임이라고 생각한다 우리가 이러한 일을 올바르게 수행하도록해야한다는 것입니다 최첨단을 향해 계속 나아갈 것입니다 큰 일에 적용하십시오

정말 고마워요 [음악 재생]

Writing the Playbook for Fair & Ethical Artificial Intelligence & Machine Learning (Google I/O'19)

[음악 재생] JEN GENNAI : 전 운영 관리자입니다 그래서 내 역할은 우리가 우리의 고려 사항을 만들고 있는지 확인하는 것이다

윤리적 인 AI 주변 심의, 행동, Google의 전체 조직에서 확장 할 수 있습니다 생각할 첫 번째 사항 중 하나 비즈니스 리더 또는 개발자 인 경우 사람들이 당신의 뜻을 이해하도록 보장합니다 윤리가 당신에게 무엇을 의미합니까? 우리에게는 가치 중심 원칙을 설정해야한다는 것이 었습니다 회사로서 이러한 가치 중심 원칙은 우리에게있어, 우리의 인공 지능 원리라고합니다

작년에는 6 월에 발표했습니다 따라서 이들은 AI 개발에 관한 7 가지 지침입니다 우리에게 할당 된 배포 방법 우리는 인공 지능을 개발하고 싶습니다 우리는 편견을 만들거나 강화하지 않기를 원합니다 우리는 기술을 구축하고 있는지 확인하고자합니다

그것은 사람들에게 책임이 있습니다 그리고 우리는 당신이 읽을 수있는 다섯 가지 다른 것들을 가지고 있습니다 우리 웹 사이트에서 구할 수 있습니다 그러나 동시에 우리는 회사에 대한 이러한 포용 원칙, 우리는 또한 우리가 우리의 빨간 선을 고려했습니다 따라서 이러한 기술은 우리가 추구하지 않을 기술입니다

무기 기술과 같은 것들을 커버합니다 우리는 무기를 만들거나 배치하지 않을 것입니다 우리는 또한 기술을 구축하거나 배치하지 않을 것입니다 우리는 국제 인권을 침해한다고 생각합니다 따라서 비즈니스 리더 또는 개발자 인 경우, 우리는 또한 당신이 무엇을 이해하는지 격려 할 것입니다

귀하의 포부의 목표입니다 그러나 동시에, 당신의 가드 레일은 무엇입니까? 무슨 요점을 교차시키지 않을거야? 가장 중요한 일은 무엇인지 알고있는 것입니다 윤리적 인 AI 개발에 대한 정의 AI 원리를 설정 한 후, 그 다음 것은, 어떻게 그들을 진짜로 만들 수 있느냐입니다 당신이 그 원칙들과 일치하는지 어떻게 확신합니까? 여기에는 세 가지 주요한 것들이 있습니다

나는 명심하고 싶다 첫 번째 것은 책임감 있고 권위가 필요합니다 신체 따라서 Google의 경우 이는 고위 간부가 있음을 의미합니다 권한이있는 회사 전체에서 발사를 승인하거나 거절합니다

그래서 그들은 어떤 사람들과 씨름해야한다 이 매우 복잡한 윤리적 질문들 우리가 일을 시작할 수 있도록 우리가 믿는 것은 공정하고 윤리적 인 결과로 이어질 것입니다 그래서 그들은 권위와 책임을 제공합니다 정말 힘든 결정을 내릴 수 있습니다 둘째, 의사 결정자가 올바른 정보

여기에는 회사 내의 다양한 사람들과 이야기하는 것이 포함되며, 외부 사용자의 말을 듣고, 외부 이해 관계자, 그리고 귀하의 의사 결정 기준에 따르십시오 Jamila는 참여에 대해 더 많이 이야기합니다 잠시 후 외부 공동체들과 그런 다음 거버넌스 구축의 세 번째 핵심 부분 책임감이 작동하고 있습니다 누가 그 일을 할 것인가? 구조와 프레임 워크는 무엇입니까? 반복적이고 투명하며, 그리고 그 사람들에 의해 이해되는 이 결정을 내리고 있습니까? 그래서 Google에서는 중앙 팀을 설립했습니다 엔지니어링 팀과 제품 팀에 기반하지 않습니다

여기에 객관성의 수준이 있음을 보장해야합니다 그래서 제품을 만들고있는 사람들과 찾고있는 유일한 사람들은 아니다 해당 제품이 공평하고 윤리적인지 확인해야합니다 이제 당신은 당신의 원칙이 있습니다 사람들이 이해할 수 있도록 노력 윤리가 당신에게 무엇을 의미합니까? 우리는 거버넌스 구조를 수립하는 것에 대해 이야기하고 있습니다

당신이 그 목표를 달성하고 있는지 확인하기 위해, 다음으로 할 일은 당신이 장려하고 있는지 확인하는 것입니다 회사 내부의 모든 사람 또는 함께 일하는 사람 그리고 그 목표에 부합됩니다 따라서 전체 목표를 정렬하여 설정했는지 확인하십시오 윤리적 AI와 – 어떻게 윤리적 인 발전을 이루려고합니까? 그리고 기술의 배치? 다음으로, 당신은 사람들을 훈련시키고 싶습니다 처음부터 이러한 문제에 대해 생각해보십시오

당신은 윤리적 고려를 포기하고 싶지 않습니다 제품 개발 라이프 사이클 후반부 너는 네가 최대한 빨리 시작하십시오 사람들은 이러한 유형의 문제에 대해 생각하도록 훈련 받았습니다 그런 다음 보상을받습니다

당신은 사람들을 붙잡고 있는지 확인해야합니다 윤리적 개발 및 배치에 대한 책임 속도가 느려질 수도 있다는 것을 받아 들여야 할 수도 있습니다 올바른 결과를 얻으려면 몇 가지 개발이 필요합니다 사람들이 사고에 대한 보상을 느끼는지 확인 윤리적 인 발전과 배치에 관한 것 그리고 나서 마침내 사람들을 고용하고 있는지 확인하십시오

너를 돕는 사람들을 개발하고 목표를 달성하십시오 다음으로 프레임 워크를 설정했습니다 당신이 옳은 사람을 고용했다면, 당신은 그들에게 보람을 느낍니다 자신의 목표를 어떻게 달성하고 있는지 어떻게 알 수 있습니까? 따라서 우리는 이것을 검증 및 테스트라고 생각합니다 여기에 예가 있습니다

사용자의 경험 사용자는 누구입니까? 당신이 어떻게 생각하는지 어떻게 확신합니까? 사용자의 대표적인 견본에 대해? 그래서 당신은 다른 경험을 테스트하려고 생각합니다 대부분 핵심 하위 그룹에서 왔습니다 그러나 당신은 또한 생각하고 싶어합니다 소외된 사람들은 누구입니까? 귀하의 노동 인구에서 누가 과소 대표 할 수 있습니까? 따라서 추가주의를 기울여야 할 수도 있습니다

그것을 올바르게하기 우리는 또한 실패 모드가 무엇인지 생각하고 있습니다 우리가 의미하는 바는 사람들이 과거의 제품에 의해 영향을 받았으며, 우리는 그들이 부정적인 영향을받지 않을 것임을 확신하고 싶다 미래에 그렇다면 우리는 그것을 어떻게 배우고 확실하게 앞으로 우리는 그것을 의도적으로 테스트하고있는 중입니까? 그런 다음 테스트 및 유효성 검사의 마지막 비트 이러한 실패 중 일부를 소개하고 있습니다

제품에 스트레스 테스트를 확실히하기 위해 그리고 다시 약간의 객관성을 지닌다 제품이 스트레스 테스트를 통과하는지 확인 공정하고 윤리적 인 목표 그리고 나서 우리는 단지 당신 뿐만이 아니라고 생각합니다 당신은 혼자가 아닙니다 우리가 어떻게 모든 정보를 공유하는지 확인합니다 우리를 더욱 공평하고 윤리적으로 만들고 확실하게하기 우리가 제공하는 제품이 공정하고 윤리적인가? 따라서 모범 사례와 지침을 공유하는 것이 좋습니다

Google에서 제공하는 우리의 연구 및 Google AI 사이트에 대한 모범 사례 따라서이 모범 사례는 모든 것을 포괄합니다 ML 공정성 도구 및 연구에서 Margaret Mitchell이 ​​잠깐 얘기 할 것입니다 뿐만 아니라 모범 사례 및 지침 모든 개발자 또는 비즈니스 리더 따를 수 있습니다 그래서 우리는 스스로를 제공하려고 노력합니다

다른 사람들이 자신의 연구를 공유하도록 격려하기 그리고 또한 학습 그래서 우리가 외부와 공유하는 것에 대해 이야기 할 때, 그것은 또한 목소리를 가져 오는 것에 관한 것입니다 그래서 나는 Jamila Smith-Loud에게 넘겨 줄 것이다 인간의 영향을 이해하는 것에 대해 이야기합니다 JAMILA SMITH-LOUD : 감사합니다

[박수 갈채] 안녕, 모두들 내가 너에게 조금 이야기 할거야 오늘 이해, 개념화 및 평가에 대해 실제 사람들과 공동체에 미치는 인간의 결과와 영향 사회적 형평성과 같은 도구의 사용을 통해 평가 사회 및 자본 영향 평가 주로 사회 과학 분야에서 온다 연구에 기반한 방법을 우리에게 제공하십시오

이러한 질문을 충분히 광범위하게 평가하는 것 제품에 적용 할 수 있도록 우리가 무엇에 대해 생각할만큼 충분히 구체적인지 우리가 할 수있는 유형의 제품 변화와 중재입니다 그래서 저는 질문들 중 하나를 가지고 시작할 것입니다 우리는 종종 이러한 질문에 대해 생각할 때 시작합니다 나는 항상 우리가 윤리에 대해 생각할 때, 공정성에 대해 생각할 때, 편견의 문제에 대해 생각조차하고, 이들은 정말로 사회적 문제입니다 사회 문제를 이해하는 데 중요한 진입 점이 있습니다

실제로 지리학 적 상황이 무엇인지 생각하고 있습니다 사용자가 거주하며 참여가 어떻게 영향을 미치는지 제품과 함께? 그래서 정말 묻고, 어떤 경험 전적으로 사람들이 살고있는 곳을 기반으로합니다 다른 민족들과 크게 다를 수 있습니다 서로 다른 지역에 살고있다 자원이 풍부하고 인터넷에 더 많이 연결되어 있습니다

지역적 차이를 그렇게 만드는 여러 측면의 중대한? 두 번째로, 우리는 사람들이 어떤 일을 저질렀는지 궁금합니다 가족과 함께 제품 사용 그리고 그들의 지역 사회에서 우리는 경제적 변화가 무엇인지 생각하고 싶습니다 이 새로운 기술과의 계약의 일환으로 올 수 있습니까? 실제로 영향을 미치는 사회적, 문화적 변화 란 무엇인가? 사람들이 기술을보고 참여도를 보는 방법 진행중? 그래서 저는 우리의 접근 방식에 관해 이야기 할 것입니다 종류 활용에 대한 좋은 점 사회적 영향 평가 및 공평 영향 평가의 기존 프레임 워크 그게 – 우리가 새로운 토지 개발을 할 때를 생각한다면 프로젝트 또는 심지어 환경 평가, 이미 사회적 영향을 고려하는 기준이 있습니다

그 과정의 일부로 그래서 우리는 새로운 기술을 채택하는 것을 정말로 생각합니다 같은 방법으로 우리는 지역 사회가 어떻게 영향을 받았는지, 그들의 인식은 무엇인가, 그리고이 교전은 어떻게 구성되어 있습니까? 그래서 우리가 생각하는 것들 중 하나 묻는 것에 대한 원칙적 접근 방식은 무엇입니까? 이 질문들? 그리고 첫 번째 것은 실제로 주위에 있습니다 어려운 질문에 참여하십시오 우리가 공정성에 대해 말할 때, 우리가 윤리에 관해 말할 때, 우리는 그들에 대해 별도로 이야기하지 않는다

인종주의, 사회 계급, 동성애 혐오증, 모든 형태의 문화적 편견이 있습니다 우리는 문제가 무엇인지에 대해 이야기하고 있습니다 그 시스템에 오버레이를 그래서 우리가되기 위해서 정말로 필요합니다 그 어려운 질문에 잘 대답하고 그들과 함께, 우리의 기술과 제품이 그 세계와 별도로 존재하지 않는다

다음 접근법은 실제로 예상하는 사고를 향한 것입니다 나는 사고에 대한 다른 생각을한다 사회적 및 형평성 영향 평가 다른 사회 과학 연구 방법에서 인과 관계 간의 관계 상관 관계는 약간 달라질 것입니다 우리는 실제로 예상하고 있습니다 해악과 결과

그리고 그것은 당신이 퍼지 대화로 괜찮을 것을 요구합니다, 충분한 연구가 있음을 깨닫고, 우리에게 충분한 데이터가 있습니다 역사와 상황이 결과에 어떻게 영향을 미치는지에 대한 이해 그리고 당신의 과정에서 예기중인 정말, 정말 중요한 부분입니다 마지막으로, 원칙적인 접근 방식에 대한 사고 측면에서 정말 목소리와 경험을 중심으로 부담을 자주지는 지역 사회의 부정적인 영향의 그리고 그 방법을 이해할 필요가 있습니다

그러한 공동체는 이러한 문제를 개념화하기까지했습니다 나는 때때로 우리가 기술적 인 관점에서 왔다고 생각한다 우리는 지역 사회에 대해 생각합니다 문제와 별개로 그러나 우리가 그 목소리를 중심에두고 약혼 할 준비가되면 전체 과정에서 나는 생각한다 더 나은 결과를 가져옵니다

약혼을 좀 더 깊게하려면 어려운 질문에서 우리가 실제로하려고하는 것 제품이 어떻게 영향을 미칠지 평가할 수 있습니다 커뮤니티, 특히 커뮤니티 역사적으로 그리고 전통적으로 소외당한 사람들 그래서 우리가 정말로 생각할 것을 요구합니다 역사와 문맥에 관해서 어떻게이 문제를 형성하고 있으며 우리는 무엇을 할 수 있습니까? 그 평가에서 배울 것인가? 또한 교차 접근법이 필요합니다

성 평등에 대해 생각하고 있다면, 우리가 인종 평등에 대해 생각하고 있다면, 이들은 개별적으로 살아가는 문제가 아닙니다 그들은 정말로 교차하고 OK입니다 그 교차 접근법에 대한 이해와 함께 훨씬 더 완전한 평가가 가능합니다 그리고 마지막으로 새로운 기술에 대해 생각할 때 새로운 제품에 대해 생각해보십시오 어떻게해야합니까? 권력 영향 결과와 중재의 타당성? 나는 권력과 사회적 영향에 대한 질문이 손을 잡고 가면 우리에게 요구된다

[? 응답 ?] 응답하지 않을 수도 있습니다 가장 좋은 대답을 얻지 만, 적어도 그 어려운 질문을합니다 따라서 우리의 예상 프로세스는 전체 프로세스의 일부입니다 맞습니까? 사회와 형평성을 생각하는 것만이 아닙니다

영향을 미치지 만, 실제로 그것에 대해 생각하고 있습니다 제품 맥락에서 – 그래서 이러한 질문에 대한 도메인 별 응용 프로그램을 가지고 있기 때문에, 가능성을 평가하는 것 위험의 중대성 마지막으로, 의미있는 것을 생각합니다 우리가 개발해야하는 모든 영향에 대한 완화 그리고 그것은 완전한 과정입니다

우리 팀의 관점에서 작업해야합니다 평가에서의 이해, 또한 제품 팀과의 파트너십이 필요합니다 도메인 특정 분석을 실제로 수행 할 수 있습니다 평가 중심 나는 이것에 대해 조금 전에 이야기했다

그러나 우리가이 평가를 중심으로 할 때, 정말로, 우리가 물어 보려고하는 것은 누가 가장 영향을 미쳤습니까? 그래서 우리가 문제를 생각한다면 약간의 경제적 영향을 미칠 수 있습니다 데이터를 기반으로 데이터를 분류해야합니다 어떤 지역 사회, 어떤 인구, 가장 영향을 많이받습니다 특정 인구 데이터 및 이해 가장 큰 영향을받는 사람 또 다른 중요한 부분은 검증입니다

그리고 나는 Jen이 그것을 많이 언급했다고 생각하지만 실제로 지역 사회 기반의 연구 활동에 대해 생각하고, 이것이 참여 적 접근인지 여부, 초점 집단 이건간에 하지만 실제로, 우리는 어떻게 우리의 평가를 검증합니까? 커뮤니티에 직접 참여하고 실제로 중심에두기 우리 프로젝트의 일부로 문제의 골조를 만들었습니까? 그리고 반복과 실현을 통해 처음에는 완벽하지 않을 것입니다 양측에서 잡아 당기기를 요구한다 정말 대화를 제대로하기 위해서 그렇다면 우리는 어떤 유형의 사회 문제를 생각하고 있습니까? 우리는 소득 불평등, 주택에 대해 생각하고 있습니다 변위, 건강 불균형, 디지털 격차 및 식량 접근

우리는 이것들과 모든 다른 유형의 방법들을 생각하고 있습니다 하지만 도움이 될 거라 생각 했어 우리가 구체적인 예를 생각한다면 그럼 하나의 예를 살펴 보겠습니다 사회 문제의 유형에 대해 우리 제품과 사용자와 관련하여 이해하고 싶습니다

식량 접근과 관련된 불공평 주제 이지도는 당신에게 – 그리고 그것은 분명히 미국의 맥락입니다 지금이 질문에 대해 생각해보십시오 항상 글로벌 방식으로 생각하고 있습니다 하지만이지도는 우리에게 좋은 방법이라고 생각했습니다 그것을 보아라

보시다시피 어두운 음영이있는 부분 해당 사용자가 크게 영향을 줄 수있는 영역입니다 우리가 제품에 대해 생각할 때 다른 경험 어쩌면 개인화와 추천을 줄 수도있다 레스토랑 같은 것 그래서 우리는 질문에 대해 생각하고 있습니다 해당 사용자가 포함 또는 제외되는 방법에 대해 제품 경험을 통해 더 나아가서 생각하는 방법에 대해 생각해보십시오

중소기업 및 저 자원 비즈니스 또한 제품 유형에 영향을 미칩니다 그래서 우리가 깨달을 필요가 있습니다 우리가 여기에 갈 수있는 풍부한 데이터 센서스 트랩 레벨만큼 깊은 곳으로 어떤 커뮤니티는 다른 지역 사회와 다른 경험 그래서, 내가 말했듯이이지도는 찾고 있습니다 인구 조사 지역 사회에서 차가없고 슈퍼마켓이없는 곳 1 마일 이내에 저장하십시오

우리가 더 깊게 보이기를 원한다면, 우리는 소득에이 정보를 오버레이 할 수 있습니다 식량 접근과 소득 불균형에 대해 생각해 보면, 종종 연결되는 서로 다른 그룹이 어떻게 다른지에 대한 더 나은 이해 제품에 참여하십시오 그래서 이런 어려운 사회 문제를 생각할 때, 우리가 정말로 생각할 필요가 있습니다 우리가 얻을 수있는 논리적 인 과정 큰 사회적 문제를 향해 나아가고 매우 구체적인 결과를 가져다 준다 의미 있고 변화를 가져 오는 효과는 무엇입니까? 그리고 우리가 정말로 인정해야합니다

오버레이가되는 문맥이있다 우리가 가지고있는 정보로부터이 과정의 모든 부분을, 우리가하는 활동에서 – 내 경우에는, 매우 연구 중심의 활동이되어야합니다 의미있는 결과물에 대해 생각해보십시오 그리고 조금 더 깊숙이 들어가야합니다 이 논리 모델에 대한 생각의 종류로, 우리는 음식 접근에 대해 생각하면서 지금 목적을 가지고 있습니다

예 : 부정적인 의도하지 않은 결과를 줄이기 위해 양질의 음식에 대한 접근이 문제가되는 분야 우리는 또한 상황을 잘 알고 있습니다 그래서 우리는 식량 접근의 맥락을 생각하고 있습니다 하지만 우리는 또한 고급화에 대한 질문을 생각하고 있습니다 우리는 변위에 대해 생각하고 있습니다

우리는 지역 사회의 불신에 대해 생각하고 있습니다 그래서 우리는이 질문이 문맥을 알리는 많은 다른 이슈들, 단지 음식에 대한 접근성 그러나 과정의 일부로, 우리는 자원을 확인하고 있습니다 우리는 다 분야 연구가있는 곳을 생각하고 있습니다 우리가 생각할 수있는 팀? 우리의 외부 이해 관계자는 무엇입니까? 문제의 골격을 도울 수 있습니까? 그리고 나서, 기능 간 관계는 무엇입니까? 우리가 실제로 만들어야 할 이런 종류의 문제를 해결할 수 있고, 우리의 제약이 무엇인지 인정하는 동안? 때로는 시간이 엄청난 제약으로, 지식과 위안이 부족하다

이 어려운 문제들에 관해 이야기 할 수있게되었습니다 일부 활동 및 입력 우리가 생각하고있는 것이 도움이 될 수 있습니다 우리는 몇 가지 대답을 얻는다 사례 연구에 대해 생각하고, 설문 조사를 생각하며, 우리가 사용자에게 묻는 사용자 연구에 대해 생각해보십시오 이 문제에 대한 인식

지리 정보에 기초한 참여 방법 그 분석을 할 수 있다는 점에서 차이가 있습니까? 그리고 실질적인 결과를 창출하고, 일부는 제품 중재 및 실제로 우리가 제품을 어떻게 바꿀 수 있는지, 또한 실제로 생각한 커뮤니티 기반 완화 조치 우리가 참여하는 방법이 있나? 커뮤니티와 함께 ​​데이터를 가져 오는 방법 완전한 솔루션 세트를 만드는 데 정말로 사용할 수 있습니다 그리고 정말로, 항상 긍정적 인 효과를 얻으려는 경향이 있습니다 원칙과 실천 따라서이 영역 중 하나입니다 당신은 매우 원칙적인 접근 방식을 취하는 것처럼 느낄 수 있습니다

그러나 실제로 그것을 실천에 옮길 수있는 것에 관한 것입니다 그래서 내가 너를 떠날 것이고 오늘 이해를 생각하면서 이러한 인간의 영향은 실제로 그들을 적용 할 수 있습니다 특정 기술에 적용 할 생각 응용 프로그램, 신뢰 구축 공평한 협력 – 정말 생각하고, 당신이 외부 이해 관계자들과 함께 할 때, 평등하게 느끼게하는 방법 우리 둘 다 지식을 공유하고 있다는 의미있는 방식으로 경험하고 그런 다음 지식 생성을 검증합니다 우리가 다른 지역 사회에 참여할 때, 우리는 정보, 데이터 및 방법에 대해 진정으로 확인해야합니다 우리가 이것을 틀 짓는 것은 여러 다른 출처에서 나올 수 있습니다

그리고 그것은 정말로 중요합니다 그런 다음 조직 내에서 실제로 생각해보십시오 팀 내에서 변경 에이전트 란 무엇입니까? 실제로 변화하는 도구는 무엇입니까? 그것을 의미있는 과정으로 만드시겠습니까? 고맙습니다 이제 Margaret은 기계 학습에 대해 더 자세히 이야기 할 것입니다 관로

[박수 갈채] MARGARET MITCHELL : 좋습니다 고마워, Jamila 그래서 공정성과 투명성에 대해 조금 이야기 할 것입니다 개발을위한 몇 가지 틀과 접근법 윤리적 인 인공 지능 따라서 일반적인 기계 학습 개발 파이프 라인에서, 개발자를위한 출발점은 종종 데이터입니다

교육 자료가 먼저 수집되고 주석이 달립니다 거기에서 모델을 훈련 할 수 있습니다 그런 다음 모델을 사용하여 콘텐츠를 출력 할 수 있습니다 예를 들어 예측이나 순위, 그리고 하위 사용자 출력을 볼 수 있습니다 그리고 우리는 종종이 접근법을 비교적 깨끗한 파이프 라인이라면 우리가 행동 할 수있는 객관적인 정보를 제공합니다

그러나,이 파이프 라인의 시작부터, 인간 편견은 이미 수집 된 데이터를 형성했습니다 인간의 편견은 우리가 수집하는 것을 더욱 형상화합니다 그리고 어떻게 주석을 달았 는가 다음은 일반적으로 기여하는 인간 편견의 일부입니다 문제가있는 편견과 데이터, 그리고 해석 모델 출력의

보고 편견과 같은 것 – 우리가 발언하는 경향이있는 곳 우리에게 눈에 띄는 것들, 전형적인 것들과 반대되는 것들 – 아웃 그룹 균질 편견 같은 것들 – 우리가 사회 집단 밖에있는 사람들을 보는 경향이있는 곳 어떻게 든 뉘앙스가 적거나 적다 우리가 함께 일하는 그룹 내의 사람들보다 복잡합니다 자동화 바이어스와 같은 것들 – 우리는 시스템의 출력을 선호하는 경향이있다 인간이 실제로 어떤 결과물을 출력하는지 자동화 모순되는 정보가있는 경우에도 말하십시오 따라서 이처럼 간단하고 깨끗한, 엔드 투 엔드 파이프 라인, 인간 편견 사이클의 시작에서 오는, 나머지 부분에 퍼짐 시스템의 그리고 이것은 피드백 루프를 만듭니다

사용자는 편향된 시스템의 출력을보고 시작합니다 클릭하거나 해당 출력물과 상호 작용하기 시작하려면, 이 다음에 훈련 된 데이터를 공급합니다 이미 이런 식으로 편향되어 있습니다 문제가되는 피드백 루프 생성 편견이 악화 될 수 있습니다 이것을 바이어스 네트워크 효과라고 부릅니다

또는 바이어스 "세탁" 많은 일들이이주기를 방해하려고합니다 가능한 최상의 출력을 이끌어 낼 수 있습니다 그래서 우리가 고려해야 할 몇 가지 질문 누가 탁자에 있니? 우리가 작업하고있는 우선 순위는 무엇입니까? 우리가 다른 측면에 대해 생각해야 하는가? 우리가 발전 할 때의 문제와 관점의 차이점은 무엇입니까? 우리가 작업하고있는 데이터는 어떻게 수집됩니까? 그것이 어떤 종류의 것들을 나타 냅니까? 데이터에 문제가있는 상관 관계가 있습니까? 또는 어떤 종류의 소그룹이 어떤 방식 으로든 과소 표현되어 있습니다 불균형 한 오류로 이어질 것입니다

하류? 예측 가능한 위험에는 어떤 것들이 있습니까? 그래서 선견지명으로 실제로 생각해보십시오 가능한 부정적인 결과를 예상하고 우리가 더 잘 이해하기 위해 노력하는 모든 것의 어떻게 우리가 우선 순위를 정해야하는지 어떤 제약과 보충제가 제자리에 있어야합니까? 기본적인 기계 학습 시스템 너머, 우리가 할 수있는 것을 보장하기 위해 우리가 할 수있는 일은 무엇인가? 우리가 예기 한 종류의 위험 예상 할 수 있습니까? 그리고 나서 우리가 당신, 대중들, 이 과정에 대해? 우리는 이것에 관해서 할 수있는 것처럼 투명하게하는 것을 목표로합니다 우리가 어떻게 지내는지에 대한 정보를 얻기 위해 이것에 초점을 맞추고 이것이 부분적이라는 것을 분명히하십시오 개발 라이프 사이클의 몇 가지 기술적 접근 방식에 대해 간단히 이야기하겠습니다

이것은 연구의 세계에 있습니다 당신은 이것에 관한 논문을 볼 수 있습니다 관심이 있다면, 자세한 사항은 ML에는 두 종류가 있습니다 기계 학습 – 우리가 가진 기술 상대적으로 유용하다고 판명되었다

하나는 바이어스 완화이며, 다른 하나는 우리가 가진 것입니다 포괄적으로 포함을 요구했다 바이어스 완화는 신호 제거에 중점을 둡니다 문제가있는 변수들 예를 들어, 일하고 있다고 말하십시오

다음과 같은 상황을 예측하는 시스템에서 누군가 승진해야합니다 그 시스템이 아닌지 확인하고 싶습니다 우리가 알고있는 성 (gender)과 같은 것을 키잉하는 것 승진 결정 특히 여성은 승진 가능성이 적습니다 또는 많은 장소에서 남성보다 덜 빨리 승진했습니다

기술 분야를 포함 해 우리는 적대적인 다중 작업 학습을 사용하여이를 수행 할 수 있습니다 우리가 뭔가를 예측하는 동안 프레임 워크 승진하는 것처럼 우리도 시도하고 예측합니다 우리가 확신하고 싶은 하위 그룹은 영향을 미치지 않습니다 결정과 모델 낙담 그것을 볼 수 없기 때문에 표현을 제거한다

기본적으로 그래디언트를 역전시키고 백 프레 그 펙팅합니다 포함 할 때 우리는 일하고 있습니다 뭔가를 위해 신호를 추가하는 것 – 확실하게하려고 설명되어있는 하위 그룹이 있다는 것, 데이터에 잘 표현되지 않더라도 그리고 이것에 대해 실제로 잘 작동하는 접근법 중 하나 이전 학습입니다 그래서 사전 훈련 된 네트워크를 이용할 수 있습니다 성에 대한 이해를 가지고 예를 들어, 또는 피부 톤의 일부 이해, 영향을 미치기 위해 그것을 사용하십시오

다른 네트워크의 결정 이러한 표현을 순서대로 키 조작 할 수있다 보고있는 세계의 미묘한 차이를 더 잘 이해할 수 있습니다 이것은 하나의 예제입니다 우리가 작업 할 수 있었던 프로젝트 중 누군가가 웃고 있는지를 얼마나 잘 탐지 할 수 있었는지 일부 동의 된 성별로 일하는 것에 기반 함 개인과 무엇에 대한 표현 이러한 젠더 프레젠테이션은 그 모델 내에서 누군가 웃고 있었다 일부 투명성 접근법 우리가 더 잘 설명 할 수 있도록 우리가 일을 책임 져야하는 데 도움이됩니다

잘 했어 그래서 그들 중 하나는 모델 카드입니다 모델 카드에서 우리는보고에 중점을 둡니다 어떤 모델 성능이, 분해 다양한 하위 그룹에 걸쳐, 그리고 우리가 취해진 윤리적 고려 사항, 의도 한 것이 무엇인지 명확하게 해준다 모델 또는 API의 애플리케이션은, 일반적으로 다른 종류의 공유 개발자가 염두에 두어야 할 고려 사항 모델과 함께 작동합니다

또 하나는 데이터 카드입니다 그리고 이것에 대한 평가 데이터를 제공합니다 우리가 숫자를보고 할 때, 이것은 무엇에 기초를두고 있나? 모델을 사용할 수 있다고 결정할 때 누가 대표 하는가? 그것을 사용하는 것이 안전 한가? 이러한 종류의 것들은 학습자에게 유용합니다 일반적으로 더 잘 이해하고 싶다 모델이 작동하는 방식과 일종의 것들 타사의 모델 성능에 영향을 미치는 사용자

그래서 원하는 ML 전문가가 아닙니다 데이터에 대한 더 나은 이해 그들이 작업하고 있거나 표현한 것 기계 학습 모델이 다른 데이터 세트에 있습니다 기계에 기초하거나 평가되는 기계 연구자를 학습 그래서 저와 같은 사람들은 모델 성과를 비교하고자합니다 개선해야 할 점을 이해하고 싶습니다

이미 잘하고있는 무엇이, 그리고 도움 벤치 마크를 정렬하고 진행할 수 있어야한다 미묘한 차이에 민감한 방식으로 다른 종류의 인구에서 우리의 헌신적 인 노력 공정하고 윤리적 인 인공 지능과 기계 학습은 지속적으로 측정하고, 개선하고, 윤리적 인 인공 지능과 관련된 현실 세계의 영향을 공유 할 수 있습니다 개발 감사

[박수 갈채]

Federated Learning: Machine Learning on Decentralized Data (Google I/O'19)

[음악 재생] EMILY GLANZ : 안녕하세요 오늘 우리와 함께 해줘서 고마워

저는 Emily, Google의 연합 학습 소프트웨어 엔지니어입니다 팀 다니엘 라지 : 나는 댄이야 저는 연구 과학자이자 팀 리더입니다 우리는 페더레이션 러닝 (Federated Learning)에 대해 오늘 이야기 할 것입니다

분산 된 데이터 학습 페더레이션 학습의 목표는 에지 장치가 중앙 집중화없이 최첨단 기계 학습 데이터 및 기본적으로 개인 정보 보호 그리고, 프라이버시를 가지고, 우리가 의미하는 바는 우리는 앱 개발자들, 중앙 집중식 서버 및 모델 자체가 공통적으로 학습 패턴 만 그것이 프라이버시라는 것을 의미합니다 오늘의 강연에서는 분산 된 데이터, 분산 된 데이터로 작업하는 것을 의미합니다

중앙 집중 방식으로 이것이 우리가 연합 연산이라고 부르는 것입니다 분산 된 데이터를 학습하는 것에 대해 조금 이야기하겠습니다 그리고 우리는 당신에게 소개를 해줄 것입니다 TensorFlow Federated에 연결하는 방법입니다 시뮬레이션에서 연방 계산을 실험 할 수있다

오늘 그 과정에서 우리는 몇 가지 개인 정보 보호 원칙을 소개 할 것이며, 일시적인 보고서, 개인 정보 보호 기술, 이러한 원칙을 구체화하는 연합 모델 평균화와 유사합니다 자, 분권화 된 데이터부터 시작합시다 많은 데이터가 가장자리에서 태어납니다 데이터를 생성하는 수십억 개의 전화기 및 IoT 장치가 있습니다

그 데이터는 더 나은 제품과 더 똑똑한 모델을 가능하게합니다 어제 기조 연설에서 많은 것을 보았습니다 그 데이터를 로컬에서 사용할 수 있다는 것 에지에서, 온 – 디바이스 추론과 함께, 자동 캡션 및 차세대 조수와 같은 온 – 디바이스 추론은 대기 시간, 일을 오프라인에서 처리 할 수있게 해주 며 종종 배터리 수명 이점을 가지고 있습니다 또한 상당한 프라이버시 이점을 가질 수 있습니다 서버가 될 필요가 없기 때문에 모든 상호 작용을위한 루프에서 그 지역에서 생성 된 데이터를 가지고 있습니다

그러나 루프에 서버가 없다면, 분석 질문에 어떻게 대답합니까? 데이터를 기반으로 모델을 어떻게 지속적으로 개선합니까? 그 가장자리 장치가 가지고 있니? 이것은 실제로 우리가 상황에서 볼 수있는 것입니다 연합 학습의 그리고 오늘 우리가 중점을 둘 앱 Gboard는 Google의 모바일 키보드입니다 사람들은 키보드에 대해별로 생각하지 않습니다 그러나 그들은 매일 그것에 시간을 보냅니다 모바일 키보드 입력은 40 % 느려집니다

물리적 인 것보다 그래도 귀여운 스티커를 공유하는 것이 더 쉽습니다 Gboard는 기계 학습 모델을 사용합니다 타이핑 경험의 거의 모든면에서 탭 타이핑, 제스처 타이핑은 모두 모델에 따라 다릅니다

손가락이 주요 타겟보다 약간 넓기 때문에, 그리고 당신은 사람들이 치는 것에 의지 할 수 없습니다 정확하게 올바른 키 입력 마찬가지로 자동 수정 및 예측 학습 된 모델과 음성으로 구동됩니다 텍스트 및 경험의 다른 측면 이 모든 모델은 물론 장치에서 실행됩니다

키보드가 작동 할 수 있어야하기 때문에 오프라인 및 신속하게 지난 몇 년 동안 Google 팀은 Gboard 팀과 일 해왔다 분산 된 데이터를 실험 해보십시오 Gboard는 최고의 개인 정보 전달 키보드를 목표로합니다 유효한

그리고 우리가 목표로 삼고있는 길 중 하나 로컬 상호 작용의 온 – 장치 캐시를 사용하는 것입니다 이것은 터치 포인트, 유형 텍스트, 컨텍스트, 그리고 더 이 데이터는 연합 학습에 독점적으로 사용됩니다 및 계산 EMILY GLANZ : 차가워 요

페더레이션 계산으로 넘어 갑시다 연합 계산은 기본적으로 분산 데이터 용 MapReduce 개인 정보 보호 보존 집계가 내장되어 있습니다 몇 가지 주요 개념을 소개합시다 Gboard보다 간단한 예제를 사용하여 연합 계산을 수행합니다 그래서 여기에 우리 고객이 있습니다

이것은 일련의 장치입니다 휴대 전화, 센서 등과 같은 것들 각 장치에는 자체 데이터가 있습니다 이 경우, 그것이 최대 온도라고 상상해 봅시다 그 장치는 그날을 보았습니다

첫 개인 정보 보호 기술로 우리를 끌어들입니다 장치 데이터 세트 각 장치는 원시 데이터를 로컬로 유지하며, 이것은 약간의 의무가 따른다 각 장치는 데이터 자산 관리를 담당합니다 오래된 데이터가 만료되는 등의 이유로 로컬에서 사용하지 않을 때 데이터가 암호화되도록합니다

그렇다면 우리는 평균 최대 온도를 어떻게 얻는가? 우리 장치에 경험이 있습니까? 우리가 길을 가졌다 고 상상해 봅시다 모든 클라이언트 데이터 항목의 평균을 전달한다 서버에 개념적으로, 우리는 집계를 계산하고 싶습니다 배포 된 데이터를 안전하게 개인적인 방식으로 우리는이 이야기를 통해 구축 할 것입니다

이제 예제를 살펴 보겠습니다 엔지니어가 특정 질문에 답변하려고하는 경우 사용자 분율과 같은 분산 데이터의 화씨 70 도가 넘는 일일 최고치를 보았습니다 첫 번째 단계는 엔지니어를위한 것입니다 이 임계 값을 서버에 입력하십시오 그런 다음이 임계 값은 이용 가능한 장치의 서브 세트로 방송 서버가 참여하기로 결정했다

연합 계산의 이번 라운드에서 그런 다음이 임계 값은 로컬 온도 데이터와 비교됩니다 값을 계산합니다 그리고 이것은 1이나 0이 될 것입니다 온도가 더 컸는 지 여부에 따라 그 문턱보다 시원한 그래서이 값들은 집계 될 것입니다

집계 연산자를 사용하여 이 경우, 이는 연합 된 수단입니다 평균값을 계산하기위한 프로토콜을 인코딩한다 참여하는 장치를 통해 서버는 장치 보고서를 대조합니다 이 골재를 방출하는 엔지니어의 질문에 대한 답변이 포함되어 있습니다 따라서 두 번째 프라이버시 기술을 보여줍니다

페더레이션 집계 서버가 여러 장치의 보고서를 결합합니다 집계 만 지속합니다 이제는 집합체 만의 첫 개인 정보 보호 원칙으로 이어집니다 해당 연합 집계 만 수행하기 최종 집계 데이터, 그 합계 및 평균을 산출합니다 엔지니어가 사용할 수있는 장치 보고서를 통해, 개별 보고서 자체에 대한 액세스 권한을 부여하지 않아도됩니다

이제이 사실이 두 번째 개인 정보 보호와 관련이 있습니다 임시 보고서의 원칙 우리는 이러한 장치 별 메시지를 보관할 필요가 없습니다 그들이 집계 된 후에, 무엇 때문에 우리는 필요한만큼 오래 머물러 있습니다 즉시 폐기 될 수있다

실제로, 우리가 방금 본 것 계산의 라운드입니다 이 서버는이 프로세스를 여러 번 반복합니다 엔지니어의 질문에 대한 더 나은 견적을 얻으십시오 일부 장치는 그렇지 않을 수 있기 때문에 여러 번 반복합니다 계산시 이용 가능하다

또는이 라운드 중 일부 기기가 중퇴했을 수 있습니다 다니엘 라지 : 뭐가 다른가요? 연합 계산과 분산 계산 사이의 관계 MapReduce와 같은 데이터 센터에서? 연방 정부의 계산에는 문제가있다 우리가 일반적으로 경험하는 것 이상으로 분산 계산에서 휴대폰과 같은 에지 장치는 통신이 제한되는 경향이 있습니다 대역폭이 연결되어 있어도 가정용 Wi-Fi 네트워크에 연결합니다

또한 간헐적으로 사용할 수 있습니다 일반적으로 유휴 상태 일 때만 참여하며, 그리고 측정되지 않은 네트워크에서 그리고 각 계산 노드는 데이터의 유일한 복사본, 데이터 자체 간헐적으로 사용 가능합니다 마지막으로, 장치는 앱의 정책에 따라 사용자의 권한으로 또 다른 차이점은 연합 환경에서, 그것은 전통적인 데이터보다 훨씬 더 분산되어있다 중심 분산 계산

따라서 대다수의 주문에 대한 감각을 제공하기 위해 데이터 센터에서 수천 또는 수만 명 계산 노드 중이 연합 설정이 수십억 개의 계산 노드가 있습니다 어쩌면 1000 만 달러가 언제든지 이용할 수 있습니다 1,000과 같은 항목이 선택되었습니다 주어진 계산 라운드 동안, 아마 50 명이 빠져 나올거야 그저 비늘의 거친 감각 일뿐입니다

우리는 지원에 관심이 있습니다 물론 에밀리 (Emily)가 언급했듯이, 프라이버시 보존 집계는 일종의 우리가 생각하는 방식에 근본적인 것 연합 계산에 대해서 그래서 여러분이이 차이점을 제시했을 때, 당신이 실제로 어떤 모습일까요? 실제로 계산을 실행합니까? 이것은 라운드 완료의 그래프입니다 Gboard 모델의 경우 3 일 동안 시간당 요금 그것은 미국에서 훈련 받았다 이 주기적 구조의 봉우리와 골짜기를 볼 수 있습니다

낮과 밤을 대표합니다 기기는 기기가있을 때만 참여하기 때문에 그렇지 않으면 유휴 상태이며 충전 중입니다 다운 완료율의 최고점 더 많은 장치가 연결될 때, 일반적으로 누군가의 그들이 잠드는 것처럼 스탠드 더 많은 장치를 사용할 수있게되면 라운드가 더 빨리 완료됩니다 그리고 장치의 가용성은 변경 될 수 있습니다

오늘의 코스 이는 동적 데이터 가용성을 의미합니다 데이터 자체가 약간있을 수 있기 때문에 야간에 전화를 연결하는 사용자와는 다른 하루 대 뭔가 우리가 연합 학습에 관해 이야기 할 때 다시 생각해 보도록하겠습니다 특히

페더레이션 된 것의 심층적 인 예를 들어 봅시다 계산은 다음과 같이 보입니다 Gboard에서 일반적인 단어의 상대적인 타이핑 빈도 입력 빈도는 실제로 Gboard를 개선하는 데 유용합니다 몇 가지 방법으로 경험할 수 있습니다

누군가가 HI라는 문자를 입력하면 "hi" "상형 문자 (hieroglyphic)"보다 훨씬 더 가능성이 높습니다 그래서 상대적인 단어의 빈도를 아는 것입니다 Gboard 팀이 제품을 더 좋게 만들 수 있습니다 어떻게 상대적인 타이핑 빈도를 계산할 것인가? 연합 계산으로? 엔지니어가 단일 임계 값을 지정하는 대신 자, 그들이 무엇을 지정할 것인가? 코드 스 니펫과 같은 것입니다

그것은 각 가장자리 장치에서 실행될 것입니다 그리고 실제로, 그것은 종종 실제로 뭔가가 될 것입니다 TensorFlow에서,하지만 여기서는 파이썬 X 의사 코드로 작성했습니다 그 장치 데이터를 각 장치의 레코드로 생각하십시오 최근 세션에서 타이핑 한 내용을 따라서 해당 장치 데이터의 각 단어에 대해 그 단어가 일반적인 단어 중 하나에 있다면 우리는 집계하려고하면 집계가 증가합니다

로컬 장치가 업데이트 될 때 그 작은 프로그램은 가장자리에 선적 될 것입니다 로컬로 실행하여 작은지도를 계산합니다 아마도이 전화가 "hello"라는 단어를 18 번 타이핑했다고합니다 및 "세계"0 번 이 업데이트는 벡터로 인코딩됩니다 여기서 벡터의 첫 번째 요소 "안녕하세요"의 수를 나타냅니다

두 번째는 "세계"를위한 것입니다 그 다음 합쳐지고 합쳐질 것입니다 Emily가 언급 한 연합 집계 연산자 사용 전에 서버에서는 엔지니어가 카운트를 볼 수 있습니다 해당 라운드에 참가한 모든 장치에서 어떤 단일 장치가 아니라 세 번째 프라이버시 원칙을 제시한다 집중된 컬렉션의

장치는 필요한 것만보고합니다 이 특정 계산을 위해 기기상의 데이터에는 훨씬 더 풍부한 기능이 있습니다 세트가 공유되지 않습니다 그리고 분석가가 다른 질문을하고 싶다면, 예를 들어, 다른 단어 세트를 세는 것, 그들은 다른 계산을 실행할 것입니다

이것은 여러 번의 라운드에서 반복 될 것이며, 집계 수를 더 높고 높게합니다 차례로 우리에게 더 나은 견적을 줄 것입니다 입력 된 단어의 상대 빈도 수 인구에 걸쳐 EMILY GLANZ : 굉장해 우리의 세 번째 프라이버시 기술에 대해 이야기 해 봅시다

안전한 집계 앞의 예제에서 우리는이 서버가 어떻게 장치에 의해보고 된 벡터의 합계를 방출해야합니다 서버는 장치 보고서에서이 합계를 계산할 수 있습니다 직접적으로, 그러나 우리는 방법을 연구 해왔다 더욱 강력한 보증을 제공합니다

서버 자체로 검사 할 수 없도록 만들 수 있습니까? 개별 보고서? 즉, 우리는 집계 개인 정보 보호에서 어떻게이를 집행합니까? 기술적 구현에서 이전에 본 원리? 보안 집계는 선택적 확장입니다 이 프라이버시를 구체화하는 클라이언트 / 서버 프로토콜 원리 다음은 작동 방식입니다 따라서이 내용은 서버가 어떻게 계산할 수 있는지에 대한 핵심 아이디어를 보여줍니다 해독 할 수없는 총액 개별 메시지

실제로, 중간에 떨어지는 전화 취급 이 프로토콜에도 필요합니다 자세한 내용은 해당 용지를 참조하십시오 굉장해 그래서 이것으로 뛰어 들어 봅시다 서버에 의한 조정을 통해, 두 장치가 한 쌍의 대형 마스크에 동의 할 것입니다

합산되면 0에 더한다 각 장치는이 마스크를 벡터에 추가합니다 보고하기 전에 참여중인 모든 기기 이 계산 라운드에서 이들 제로 – 합 쌍을 교환하십시오 보고서는이 값에 의해 완전히 가려집니다

이러한 추가 된 쌍이 이제 각 개별 보고서가 무작위로 보입니다 그러나 함께 모일 때, 쌍들은 상쇄되고, 우리가 찾고 있던 금액 만 남았습니다 실제로, 다시,이 프로토콜 드롭 아웃을 처리하기가 더 복잡합니다 그래서 우리는 연합 계산으로 할 수있는 것을 보여주었습니다 그러나 훨씬 복잡한 워크 플로우와 관련된 것은 무엇입니까? 연방 학습과 함께? 우리가 연합 학습에 뛰어 들기 전에, 일반적인 워크 플로우를 살펴 보겠습니다

기계 학습을 수행하는 모델 엔지니어 갈 것입니다 일반적으로 클라우드에 일부 데이터가 있습니다 교육 및 평가 작업을 시작하는 곳, 잠재적으로 다른 하이퍼 매개 변수를 실험하기 위해 그리드에서, 이 두 가지 직업이 얼마나 잘 작동하는지 모니터합니다 실행할 수 있는 그들은 모델로 끝날 것입니다

클라우드 데이터 배포에 적합하다 사용할 수 있습니다 그렇다면이 워크 플로는 어떻게 변환됩니까? 연합 학습 워크 플로우에? 글쎄, 모델 엔지니어는 여전히 클라우드에 데이터가 있지만 지금은 기기 데이터와 유사한 프록시 데이터입니다 이 프록시 데이터는 교육 및 평가에 유용 할 수 있습니다 사전에, 그러나 우리 주된 훈련 과정 이제 분권화 된 데이터에서 이루어질 것입니다

모델 엔지니어는 여전히 일을 할 것입니다 기계 학습 워크 플로우의 전형 인, 작업 시작 및 중지, 시도 다른 학습 속도 또는 상이한 하이퍼 파라미터들, 교육이 진행되는 동안 그들의 성과를 모니터링합니다 모델이 해당 분산 데이터 세트에서 잘 수행되면, 모델 엔지니어는 이제 좋은 출시 후보자가되었습니다 이 릴리스 후보를 평가할 것입니다 일반적으로 어떤 검증 기술을 사용하든 사용자에게 배포하기 전에 사용하십시오

이것들은 ModelValidator와 TFX로 할 수있는 것들입니다 그들은 온 – 디바이스 추론을 위해이 최종 모델을 배포 할 것입니다 검증 후 TensorFlow Lite로, 아마도 롤아웃이나 A / B 테스트와 함께 이 배포 워크 플로는 한 단계입니다 그것들은 일단 연합 학습 후에 나온다

잘 작동하는 모델을 가지고 있습니다 모델이 계속되지 않습니다 추측을 위해 배치 된 후에 훈련하는 것 모델 엔지니어가 아닌 경우 기기 개인 설정과 같은 고급 기능을 수행합니다 그렇다면이 연합 학습 부분은 어떻게 작동합니까? 기기가 유휴 상태이고 충전중인 경우, 그것은 서버에 체크인 할 것입니다

그리고 대부분의 경우, 그것은 말할 것입니다 떠나서 나중에 다시 오게 그러나 때로는 서버가해야 할 일이 있습니다 모델 엔지니어가 지시 한 초기 모델 전화로 전송됩니다 초기 모델의 경우 일반적으로 0 또는 무작위 초기화 충분하다

또는 관련 프록시 데이터가있는 경우 클라우드에서는 미리 훈련 된 모델을 사용할 수도 있습니다 클라이언트는 다음을 사용하여 모델에 대한 업데이트를 계산합니다 그들 자신의 지역 훈련 데이터 이 업데이트 만 서버로 전송됩니다 원시 데이터가 아닌 집계됩니다

다른 기기가이 라운드에 참여하고 있으며, 뿐만 아니라 모델에 대한 자체 로컬 업데이트를 수행합니다 클라이언트 중 일부는 업데이트를보고하기 전에 중단 될 수 있습니다 그러나 이것은 괜찮습니다 서버는 사용자 업데이트를 새 모델로 집계합니다 모델 업데이트를 평균하여, 선택적으로 보안 집계를 사용합니다

업데이트는 일시적인 것으로 사용 후 폐기됩니다 엔지니어가 성능을 모니터링합니다 통계를 통한 통합 교육 모델 자체와 함께 집계됩니다 엔지니어가있는 경우 교육 라운드가 계속됩니다 모델 성능에 만족합니다

서버의 다른 하위 집합이 장치에 의해 선택됩니다 새로운 모델 매개 변수가 주어진다 이것은 반복적 인 과정이며 계속 될 것입니다 많은 훈련 라운드를 통해 그래서 우리가 방금 설명한 것은 우리의 네 번째 프라이버시 기술입니다 연합 모델 평균화

우리의 다이어그램은 연합 평균 수행 된 응집의 맛으로서 분산 기계 학습을위한 서버 페더레이션 평균은 컴퓨팅으로 작동합니다 모델 업데이트의 데이터 가중 평균 장치의 여러 단계의 그라디언트 디센트에서 다른 연방 화 최적화 기술이 사용될 수 있습니다 다니엘 라지 : 뭐가 다른가요? 연합 학습과 전통적인 분산 사이의 관계 데이터 센터에서 학습 하시겠습니까? 글쎄요, 우리는 모든 차이점이 있습니다

연합 계산과 더불어 몇 가지 추가 계산 구체적으로 배우고 있습니다 예를 들어, 데이터 센터의 데이터 세트 보통 크기가 균형을 이룬다 대부분의 계산 노드는 대략 동일한 크기를 갖습니다 데이터 조각 페더레이션 설정에서 각 장치에는 하나의 사용자 데이터가 있으며, 일부 사용자는 다른 사용자보다 훨씬 더 많이 Gboard를 사용할 수 있습니다

따라서 데이터 세트 크기가 매우 다를 수 있습니다 마찬가지로, 연합 계산의 데이터 매우 자기 상관됩니다 모든 사용자의 타이핑을 대표하는 샘플은 아닙니다 각 장치에는 하나의 사용자 데이터 만 있습니다 또한 데이터 센터의 많은 분산 형 교육 알고리즘 모든 계산 노드 전체 데이터 세트의 대표 샘플을 가져옵니다

셋째, 가변적 인 데이터 가용성 내가 전에 언급 한 – 밤에 전화가 연결되어있는 사람들이 하루 동안 연결되어있는 경우와 그렇지 않은 경우가 실제로 다를 수 있습니다 예를 들어 야간 교대 근로자 대 주간 교대 근로자, 우리는 실제로 다른 종류가 있을지도 모른다 하루 중 다른 시간대에 제공되는 데이터 중 이 때 바이어스의 잠재적 인 원천이된다 우리는 연합 모델과 적극적인 연구 영역을 훈련하고 있습니다 흥미로운 점은 연합 모델 평균 다양한 최첨단 기술로 실제로 잘 작동합니다

이러한 차이에도 불구하고 모델 그것은 경험적인 결과입니다 이 선을 시작했을 때 연구 결과가 사실인지, 아니면 가장 최신의 모델의 종류에 널리 적용됩니다 Gboard와 같은 팀은 추구에 관심이 있습니다 실제로 잘 작동한다는 사실은 좋은 소식입니다

그렇다면 연합 학습은 언제 적용됩니까? 가장 적합한시기는 언제입니까? 기기 데이터가 더 많은 경우입니다 서버 측 프록시 데이터 또는 해당 개인 정보보다 관련성이 높음 감각적이지 않거나 커질 수있는 방식으로 업로드 할 수 있습니다 그리고, 중요한 것은, 귀하의 기계 학습 알고리즘의 레이블 사용자 상호 작용으로부터 자연스럽게 추론 할 수 있습니다 그래서 자연스럽게 유추 된 레이블은 어떻게 생겼습니까? Gboard의 몇 가지 예를 살펴 보겠습니다 언어 모델링은 가장 필수적인 모델 중 하나입니다

그것은 Gboard 경험의 무리를 강화합니다 언어 모델링의 핵심 아이디어 지금까지 입력 된 텍스트를 기반으로 다음 단어를 예측하는 것입니다 그리고 이것은 물론 예측 스트립에 힘을줍니다 그러나 타자를 치는 경험의 다른 양상을 또한 강화한다 Gboard는 언어 모델도 사용합니다

탭 타이핑이나 제스처 타이핑으로 이해하는 데 도움이됩니다 단어가 더 있습니다 이 경우의 모델 입력은 지금까지 순서대로 입력 된 것이고, 출력은 사용자가 다음에 입력 한 단어입니다 그것이 우리가 자체 라벨링을 의미하는 것입니다 일련의 텍스트를 가져 가면 그 텍스트의 모든 접두사를 사용하여 다음 단어를 예측할 수 있습니다

그래서 일련의 교육 사례를 제공합니다 사람들이 키보드 자체를 자연스럽게 사용했기 때문에 Gboard 팀은 수십 번의 실험을했습니다 예측 스트립 언어를 바꾸기 위해 보다 현대적인 재발 신경을 기반으로 한 새로운 모델 네트워크 아키텍처, 아래에 링크 된 종이에 설명되어 있습니다 왼쪽에서 서버 교육을받은 반복적 인 신경을 봅니다 네트워크를 이전 Gboard 모델과 비교했을 때, 오른쪽에서는 비교 모델을 비교했습니다

같은 기준선으로 이제이 두 모델 아키텍처는 동일합니다 유일한 차이점은 데이터 센터에서 교육을 받았다는 것입니다 사용 가능한 최상의 서버 측 프록시 데이터 사용 다른 하나는 연합 학습으로 훈련 받았다 최신 아키텍처는 두 경우 모두에서 더 좋으며, 그러나 연합 모델은 실제로 않습니다 서버 모델보다 훨씬 뛰어나다

분산 된 데이터가 더 좋기 때문입니다 사람들이 실제로 입력하는 것을 나타냅니다 페더레이션 모델에 대한 x 축에서, 우리는 훈련 라운드를 볼 수 있습니다 얼마나 많은 계산을 했는가? y 축에 주어진 정확도를 맞추는 걸까요? 그리고이 모델은 약 1,000 회 후에 수렴하는 경향이 있습니다 벽 시계 시간에 일주일 정도입니다

데이터 센터보다 길기 때문에, 여기서 x 축은 SGD의 단계를 측정하며, 약 1-2 일 안에 비슷한 품질을 얻을 수 있습니다 그러나 그 주 긴 시간 프레임은 여전히 기계 학습 엔지니어에게 실용적인 많은 모델을 병렬로 시작할 수 있기 때문에 일을해야한다 이 환경에서 생산적으로 작업하고, 조금 더 오래 걸리더라도 그 비교적 작은 차이의 영향은 무엇입니까? 실제로는 꽤 큽니다 다음 단어 예측 정확도 25 %의 친척으로 향상됩니다

실제로 예측을합니다 스트립 자체가 더 유용합니다 사용자가 약 10 % 더 클릭합니다 Gboard 팀과 함께 작업 한 또 다른 예 이모티콘 예측입니다 소프트웨어 키보드에는 그림 이모티콘 인터페이스가 있습니다

찾을 수는 있지만 많은 사용자 거기를 보거나 불편 함을 알지 마십시오 그래서 Gboard는 능력을 소개했습니다 예측 스트립에서 바로 이모티콘을 예측하려면 다음 단어처럼 그리고 연합 모델은 학습 할 수있었습니다 화재 이모티콘이 적절한 완성인지 확인하십시오

이 파티가 켜져 있습니다 이제 아래쪽에 히스토그램을 볼 수 있습니다 이모티콘의 전체 빈도 만 사람들이 타이핑하는 경향이 있는데, 웃음 / 울다 이모티콘이 많이 있습니다 더 대표된다 그래서 이것은 여러분이 컨텍스트가 실제로 이모티콘 문제

우리는 그 웃음을 이모티콘으로 울기를 원하지 않을 것입니다 우리는 항상 제안합니다 그리고이 모델은 7 % 더 정확한 이모티콘으로 끝납니다 예측 그리고 Gboard 사용자는 실제로 예측 스트립을 4 % 더 클릭합니다

그리고 가장 중요하게 생각합니다 포함의 즐거움을 발견 한 사용자가 11 % 더 많습니다 자신의 텍스트에서 이모티콘을 사용하고 사용자의 수를 그 사람들은 훌륭하게 감동적 인 본문을 받고 있습니다 지금까지 텍스트 입력 측면에 초점을 맞추 었습니다 그러나 연합 학습이 할 수있는 다른 요소가 있습니다

UI 자체에서 액션 예측과 같은 적용 Gboard는 실제로 타이핑에 사용되지 않습니다 핵심 기능은 통신을 가능하게하는 것입니다 사람들이 입력하는 것 중 많은 부분이 메시징 앱에 있습니다 그 앱은 더욱 생생해질 수 있습니다 당신이 완벽한 GIF를 공유 할 때

사람들이 훌륭한 GIF를 발견하도록 돕는 것 적절한 시간에 키보드를 검색하고 공유 방해가되지 않고 하나이다 Gboard의 차별화 된 제품 기능 이 모델은 지금까지 문맥에서 GIF에 대한 질의 제안 또는 스티커, 검색 또는 그림이있는 지, 그리고 그 제안이 이 시점에서 실제로 사용자에게 보여줄만한 가치가 있습니다 이 모델의 초기 반복 아래에 링크 된 논문에 설명되어 있습니다 이 모델은 실제로 47 %의 감소를 가져 왔습니다 도움이되지 않는 제안으로 이모티콘, GIF 및 스티커 공유의 전체 비율 GIF 검색이 언제 더 잘되는지를 알려줌으로써 적절한 것이고 그 애니메이션에서 볼 수있는 것입니다

누군가 "좋은 밤 (good night)"이라고 타이핑 할 때, 그 작은 "g" 작은 GIF 아이콘으로 바뀝니다 좋은 GIF가 공유 할 준비가되었음을 나타냅니다 마지막 예제는 Gboard에서 제공하고 싶습니다 새로운 단어를 발견하는 문제입니다 그렇다면 Gboard가 모르는 사람들의 말은 무엇입니까? 단어 입력이 정말 어려울 수 있습니다

키보드는 자주 알지 못하기 때문에 자동으로 올바른 것으로 인식됩니다 그리고 Gboard 엔지니어는 가장 많이 입력 된 알려지지 않은 단어를 사용할 수 있습니다 타이핑 경험을 향상시킵니다 사전에 새로운 공통 단어를 추가 할 수 있습니다 수동 검토 후 다음 모델 출시 또는 어떤 유형의 오타가 있는지 알아낼 수 있습니다

다른 측면에 대한 가능한 수정 제안 타이핑 경험 사람들이 입력하는 단어 샘플입니다 그 Gboard는 모릅니다 이 단어 목록을 어떻게 얻었습니까? 원시 데이터를 공유하지 않는다면? 우리는 실제로 반복적 인 네트워크를 훈련 시켰습니다 사람들의 순서를 예측한다

키보드가 모르는 단어를 입력 할 때 입력하십시오 그리고 그 모델은 다음 단어 예측 모델과 마찬가지로, 문자를 문자로 샘플링하는 데 사용할 수 있습니다 그런 다음 데이터 센터에서 해당 모델을 가져 와서 요청합니다 우리는 단지 그것을 생성합니다 수백만 및 수백만 개의 샘플을 생성합니다

단어를 대표하는 모델로부터 사람들은 야생에서 타이핑하고 있습니다 그리고 우리가 이것들을 조금이라도 무너 뜨린다면, 여러 가지가 혼합되어 있습니다 "정말"과 "미안"과 같은 약어가 있습니다 그들의 모음이 없습니다 "hahah"와 "ewwww"에 추가 된 글자가 있습니다

종종 강조하기 위해 많이 사용되는 오타가 있습니다 Gboard가 자동 수정을 원한다고해도 표시됩니다 그 (것)들에서 멀리 새로운 이름이 있습니다

또한 영어 이외의 단어를 입력하는 경우도 있습니다 영어 키보드로이게 뭔데? 미국에서의 영어 교육은 이것이 훈련 된 것입니다 그 비 영어 단어는 실제로 다른 방법을 나타냅니다 Gboard가 향상 될 수도 있습니다

물론 Gboard는 경험이 있습니다 여러 언어로 타이핑하기 그리고 아마 다국어 경험을 할 수있는 방법이있을 것입니다 또는 스위칭 언어를보다 쉽게 ​​개선 할 수 있습니다 이것은 또한 우리에게 네 번째 개인 정보 보호 원칙을 제시합니다

이는 개인의 데이터를 암기하지 않습니다 이 경우에는 집계 된 모델 만 사용하는 데주의해야합니다 많은 사용자를 대상으로하고 어휘 밖에서 만 교육 특정 맛이 나는 단어 일련의 숫자 우리는 확실히 모델을 원하지 않는다 우리는 연방 학습에서 암기 할 수 있도록 훈련했습니다

누군가의 신용 카드 번호 그리고 우리는 기술을 더 찾고 있습니다 다른 종류의 더 강력하고 증명할 수있는 개인 정보 보호 속성 그 중 하나는 차등 개인 정보 보호입니다 이것은 일반적인 패턴을 배우는 통계 과학입니다 개별 예제를 암기하지 않고 데이터 세트에 저장합니다

이것은 여러 해 동안 주변에 있었던 분야입니다 그것은 연합 학습에 매우 보완 적입니다 주요 아이디어는 당신이 연계 학습 또는 데이터 센터에서 모델 교육, 당신은 적절하게 교정 된 잡음을 사용할 것입니다 모델에 대한 개인의 영향을 가릴 수있는 너는 배웠다 이것은 실험 할 수있는 것입니다

오늘 TensorFlow 개인 정보 보호 프로젝트에 약간의 시간을두고, 기존의 데이터 센터를 위해 여기에 링크 된 설정에서 모든 데이터를 사용할 수 있습니다 추가하는 옵티 마이저를 사용할 수 있기를 원합니다 올바른 종류의 소음을 보장 할 수 있습니다 이 속성은 개별 예제가 암기되지 않았습니다 차등 개인 정보 보호 및 연합 학습의 결합 여전히 매우 신선합니다

Google은이를 생산에 적용하기 위해 노력하고 있습니다 그래서 미리보기를 해드 리고 있어요 이러한 초기 결과 중 일부는 이 기능이 개인 정보 보호와 어떻게 작동하는지에 대해 알려 드리겠습니다 기술 번호 5 – 차별적으로 사설 모델 평균, 여기에 링크 된 ICLR 문서에 설명되어 있습니다 주요 아이디어는 모든 연맹 학습에서, 에밀리가 정상적인 라운드에서 설명한 것과 마찬가지로, 초기 모델이 장치로 전송되고, 그 모델은 해당 장치의 데이터에 대해 교육을 받게됩니다

그러나 여기에 첫 번째 차이점이 있습니다 모델 업데이트를 다시 보내지 말고 집계를 위해 서버에 첫 번째 클립 업데이트, 그것은 확실히 모델 업데이트가 최대 크기로 제한됩니다 그리고 최대 크기로, 우리는 기술적 인 의미에서 실제로 의미합니다 매개 변수 공간에있는 L2 공 그러면 서버는 장치를 결합 할 때 잡음을 추가합니다

해당 라운드에 대한 업데이트 얼마나 소음인가? 대략적으로 동일한 크기의 잡음입니다 한 사용자가 전송할 최대 크기입니다 이 두 속성을 결합하고 적절히 조정하면, 업데이트 된 파일의 특정 측면이 그 라운드의 모델은 일부 사용자의 기여는 모델이 갈 것이라고 제안했다 그 방향으로 또는 그것은 랜덤 노이즈 때문에있을 수 있습니다

그럴듯한 직관적 인 개념을 부여합니다 어떤 변화가 있었는지에 대한 부인 사용자 대 잡음 때문에,하지만 실제로는 더 강력한 정식 재산을 제공한다 차별적으로 사적으로 배우는 모델 모델 평균은 거의 동일한 모델입니다 한 사용자가 실제로 있었는지의 여부 훈련에 참여 그리고 그 결과는 한 사용자가 입력 한 것입니다

이 모델은 그것을 배울 수 없다 제작 시스템을 만들었습니다 구글에서 연합 연산을 위해, 예제에서 Gboard 팀에서 사용한 것입니다 오늘 내가 얘기 한 것 이 문제에 대한 자세한 내용은이 문서에서 확인할 수 있습니다

우리는 올해 SysML에서 "Federated Learning을 향하여 규모에서 – 시스템 디자인" 이제이 시스템은 여전히 ​​내부적으로 사용되고 있습니다 아직 외부 개발자가 기대하는 시스템이 아닙니다 사용할 수 있기를 바랍니다 그러나 그것은 뭔가입니다

우리는 확실히 지원에 매우 관심이 있습니다 EMILY GLANZ : 굉장해 커뮤니티 프로젝트를 공유하게 된 것을 기쁘게 생각합니다 모든 사람들이 빌딩 블록을 개발할 수있게한다 연방 계산의

그리고 이것은 TensorFlow Federated입니다 TFF는 Federated Learning 또는 FL API의 두 가지 API를 제공하며, 및 Federated Core 또는 FC API를 사용합니다 FL API는 구현과 함께 제공됩니다 연수 및 평가 기존 Keras 모델에 적용 할 수있는 그래서 당신은 연합 학습을 실험 할 수 있습니다 시뮬레이션에서

FC API를 사용하면 자체 페더레이션을 구현할 수 있습니다 계산 또한 TFF에는 시뮬레이션을위한 로컬 런타임이 제공됩니다 그래서 이전에 우리는 연합 계산 방법을 보여 줬습니다 개념적으로 작동합니다

이것이 TFF에서의 모습입니다 그래서 우리는이 센서 수치를 참조 할 것입니다 집합 적으로 연합 가치로 그리고 각 연합 값은 타입을 가지고 있습니다 두 배치 모두 – 그래서 이것은 고객들에게 있습니다 데이터 항목 자체의 실제 유형 또는 float32를 반환합니다

서버에는 연합 유형도 있습니다 그리고, 이번에는 중괄호를 버렸습니다 이것이 하나의 값이고 많지는 않음을 나타 내기 위해, 다음 개념으로 우리를 데려다 준다 클라이언트간에 실행되는 집계 프로토콜 및이 서버 이 경우 TFF 연합 평균입니다

이 연산자는 페더레이션 된 연산자입니다 입력으로 생각할지라도 함수로 생각할 수 있습니다 그 산출물은 다른 곳에서 살아 간다 연합 op는 추상 명세를 나타냅니다 분산 통신 프로토콜 따라서 TFF는 이러한 연합 연산자에 대한 라이브러리를 제공합니다

공동 건물을 대표하는 연합 프로토콜의 유형 이제 TFF를 사용하여 간단한 코드 예제를 실행 해 보겠습니다 나는 너무 깊이 들어가지 않을거야 그래서 약간 혼란스럽게 보일 수 있습니다 하지만 결국, 나는 세울거야

더 많은 자습서를 제공하는 사이트에 대한 링크, 더 많은 연습은 코드에 관한 것입니다 따라서 지금 강조한 코드 섹션 입력을 나타내는 연합 유형을 선언합니다 따라서 우리는 배치, 그래서 이것은 TFF 클라이언트에 있고 각 데이터 항목은 tffloat32입니다 다음으로, 이것을 인수로 전달합니다

선언하는이 특별한 함수 데코레이터에 이것은 연합 계산입니다 그리고 여기에 연합 연산자를 호출합니다 이 경우에는, 그것들에 대한 tfffederated_mean입니다 센서 판독 값

이제이 예제로 돌아가 보겠습니다 모델 엔지니어는 무엇에 대한 구체적인 질문을했습니다 센서의 일부가 더 큰 판독 값을 보았습니다 그 특정 임계 값보다 그래서 이것은 TFF에서와 같이 보입니다

이 경우 첫 번째 제휴 연산자는 다음과 같습니다 책임있는 tfffederated_broadcast 장치에 임계 값을 브로드 캐스팅하기위한 것입니다 다음 페더레이션 연산자는 tfffederated_map입니다

MapReduce에서지도 단계로 생각할 수 있습니다 그것은 1과 0을 나타내는 것입니다 해당 지역 값이 해당 임계 값보다 큰지 여부 마지막으로 페더레이션 된 집계를 수행하여 tfffederated_mean을 사용하여 서버에서 결과를 다시 얻습니다 코드에서 다시 살펴 보겠습니다

우리는 다시 입력을 선언합니다 우리가 이미 우리의 독서 유형을 선언했다고 가정 해 봅시다 이제 임계 값 유형을 정의하고 있습니다 이번에는 서버에 배치가 있으며, 우리는 하나의 가치가 있다는 것을 나타내고 있습니다 all_equal = True이고 tf

float32입니다 그래서 우리는 다시 그 함수 데코레이터에 전달합니다 이것을 연합 계산으로 선언하십시오 우리는 모든 연방 통신 수를 불러냅니다 적절한 순서로 그래서 우리는 tff

federated_broadcast를 가지고 있습니다 그것은 임계 값에서 작동하고 있습니다 우리는 매핑 단계를 수행 중입니다 그게 계산 해두고 내가 잠깐 얘기하자 그 문턱 값의 판독 값에 적용 우리는 방금 방송합니다

그리고이 코드 조각은 각 장치가 수행 할 로컬 계산, 자신의 데이터 항목과 임계 값을 비교하는 곳 그들이받은 것 그래서 나는 그것이 빠른 간략한 소개라는 것을 안다 TFF로 코딩하는 것 이 사이트 (tensorfloworg/federated)를 방문하십시오

코드에 대해 더 많은 실습을하십시오 링크가 마음에 드시면 더 많은 링크가 있습니다 오늘 소개 한 모든 아이디어를 살펴 보겠습니다 연합 학습에 대해서 federated

withgooglecom에서 만화책을 확인하십시오 우리는 엄청나게 재능있는 두 명의 인력과 일할만큼 운이 좋았습니다 이 만화를 그래픽 아트로 설명하는 만화 작가 그리고 심지어 코기가 있습니다

꽤 괜찮은데 좋아요, 그래서 오늘의 이야기에서, 우리는 분산 된 데이터, 연방 계산법, 우리는 연방 계산 빌딩 블록을 사용하여 학습을 할 수 있으며, TensorFlow에 대한 간단한 소개를했습니다 페더레이션 된 프로젝트 통합 학습은 이미 가지고있는 데이터 세트에서 작동 할 수 있습니다 오늘날 서버 시뮬레이션에서

우리는 당신이 본 것, TF Lite 팀도 발표했다 그 훈련은 그들의 로드맵의 큰 부분이다 그리고 그것은 우리가 또한있는 것입니다 가능하게하는 것에 대해 정말로 흥분한 외부 개발자는 종류의 물건을 실행 언젠가는 내부적으로 운영 될 것입니다 또한 프라이버시 기술, 장치 데이터 세트, 페더레이션 집계, 보안 집계, 연합 모델 평균화, 차등 개인 이 버전은 일부 개인 정보 보호 원칙 만 구현합니다

집합체, 임시 보고서, 집중 컬렉션, 개인의 데이터를 암기하지 않습니다 그래서 우리는 우리가 당신에게 종류의 맛을 주었으면합니다 연방 학습 및 계산이 할 수있는 것입니다 자세한 내용은 만화책을 확인하십시오 TensorFlow Federated로 약간의 플레이 자신의 종류를 쓸 수있는 방법에 대한 미리보기 연방 계산의

고맙습니다 [박수 갈채] [음악 재생]

Machine Learning for Game Developers (Google I/O'19)

[음악 재생] ANKUR KOTWAL : 오늘 저는 기계에 관해 당신과 이야기하고 싶습니다 게임 개발 학습

그러나 우리가 바로 그것에 뛰어 들기 전에, 한 걸음 물러서서 보여주고 싶다 우리가 소비자 애플 리케이션에서 본 마법의 유스 케이스의 일부 Gmail을 사용하는 사용자의 경우, Gmail의 스팸 필터가 실제로는 ML 모델을 기반으로합니다 그리고이 모델은 시간이 지남에 따라 발전합니다 사용자가 무언가를 스팸 또는 스팸이 아닌 것으로 태그 지정할 수 있기 때문입니다

그리고 모델은 실제로 그것을 기반으로 시간에 따라 적응합니다 내가 가장 좋아하는 사용 사례 중 하나는 실제로 Google 포토입니다 그래서 지금 Google 포토를 실행하고 싶다면 검색 필드에 들어가서 car라는 단어를 입력하십시오 모든 이미지를 돌려 줄거야 귀하의 개인 도서관에서 자동차를 가지고 있습니다

당신이 가서 라벨을 붙 였기 때문이 아닙니다 Google의 누군가가 가서 라벨을 붙였기 때문이 아닙니다 그것 뒤에 ML 모델이 있기 때문에 그것은 실제로 대상, 랜드 마크, 위치, 심지어 애완 동물도 그래서 게임과 게임 개발 실제로 기계 학습 연구를위한 풍부한 영역입니다 그리고 2014 년 DeepMind가 우리와 합류하여 시작했습니다

게임을 사용하여 기계 학습 연구를하는 방법 그래서 2015 년에 그들은 고전 비디오를 어떻게 사용하는지에 대해 이야기했습니다 ML 연구를위한 게임 그래서 우리가 왼쪽 편에서 보는 것은 "브레이크 아웃"입니다 그리고 그들은 기계 학습의 한 형태를 사용했습니다

강화 학습이라고 불리는데, 여기서 모델 그 자체가 입력에 접근 할 수 있었다 그것은 게임, 영상, 스크린을 제공 할 수 있고, 및 점수 그리고 목표는 가능한 한 높은 점수를 얻고 시도하는 것이 었습니다 따라서 게임을하는 방법을 몰랐습니다 그것은 그저 자신의 방식으로 일하고있었습니다

그리고 몇 시간 만에, 그것은 하나였습니다 세계 최고의 "브레이크 아웃"선수 사실, 당신이 사용하는 전략을 보면, 그것은 왼쪽 편에 간격을 만들고, 공이 갭을 통과하게하고, 꼭대기 벽에서 튀어 나오게하십시오 벽돌 자체를 깨끗이합니다 1 년 후 DeepMind는 모두를 놀라게했습니다 실제로는 ML 모델을 만들었습니다

이동의 게임을 할 수 있고 어떤 세계를 패배시킬 수있다 챔피언, 당시 세계 챔피언 그리고 최근 몇 개월 동안, DeepMind와 Blizzard는 작업에 대해 이야기 해 왔습니다 그들은 "스타 크래프트 II"와 함께 해왔다 "스타 크래프트 II"를 경쟁력있게 재생할 수있는 인공 지능을 구축 할 수 있습니다

나는 당신이 가서 그것을 확인하는 것이 좋습니다 실제로, 다시, 그들은 AI Alpha 일부 프로 esports 선수에 대한 스타 그들을 물리 칠 수있었습니다 그래서 우리가 보는 것은 게임입니다 ML 연구를위한 좋은 장소 그리고 우리는 우리가 우리 자신의 응용 프로그램에서 게임을 사용할 수 있습니다

우리 자신의 게임 개발에서 그러나 모두가 기계 학습 전문가 팀을 보유하고있는 것은 아닙니다 DeepMind처럼 그리고 여기 숫자를 보면 알 수 있듯이 2 % 모든 개발자는 기계 학습 전문 지식을 갖추고 있습니다 그리고 여전히 소수의 연구자가 깊은 학습자입니다

하지만 Google Cloud에서 우리가하고 싶은 일 기계 학습을 민주화합니다 ML을 모두에게 제공 할 수있는 방법을 찾고자합니다 혁신하고 찾을 수 있도록 유용성이있는 사례를 활용하십시오 그래서 오늘, 나는 너에게 어떻게 이야기 할거야 특정 게임 영역에서 기계 학습을 사용할 수 있습니다

개발 우리는 플레이어 경험으로 시작할 것입니다 데이터 분석으로 이동하고 게임 개발에 관해 이야기합니다 그러나 여기서 중요한 측면은, 우리는 일종의 쉬운 모드에서 하드 모드로 갈 것입니다 그래서 이것들을 게임의 어려움으로 생각하십시오

그럼 플레이어 경험을 시작해 봅시다 우리는 수년간 ML 연구를 해왔습니다 우리가 그 연구를 통해 한 일은 지금 바로 사용할 수있는 API 세트로 ​​공개됩니다 이제 이들은 방대한 데이터 세트를 기반으로 미리 만들어진 모델입니다 이제 REST API 엔드 포인트로 노출했습니다

서버에서 이들을 소비 할 수있는 곳, 또는 직접 고객을 통해서도 가능합니다 그러나 이들은 일반적인 API입니다 그리고 그 중 몇 가지를 다룰 것입니다 몇 가지 구체적인 예를 살펴 보겠습니다 게임 개발자들은 그로부터 이익을 얻을 수 있습니다

그래서 우리는 점점 더 우리가 살고있는 세계에 살고 있습니다 전 세계 게임 사용자가 있습니다 서로 연결할 수있는 플레이어가 있습니다 엄청나게 다른 세계에서 온 사람들 그리고 언어는 솔직히 도전입니다

일부 게임 개발자는 감정과 같은 기술을 사용했습니다 이 주변을 시도하고 우리는 사용할 수있는 어휘 유형을 제한합니다 그리고 그것은 쉽게 번역 할 수 있습니다 그러나 당신이 전투의 두꺼운 곳에있을 때, 배틀 로얄 게임에서, 그리고 당신의 스쿼드 멤버 중 한 명이 다른 사람들과 다른 언어를 사용하며, 그것은 조정하기가 정말로 어렵습니다 그래서 우리는 여기서 더 잘할 수 있습니다

이제 Google 번역에 대해 들어 보셨을 것입니다 소비자 응용 프로그램입니다 원어에서 언어를 번역 할 수 있습니다 대상 언어로 Google 크롬에서 보셨을 것입니다

언어가 아닌 웹 사이트로 이동하면 기본 언어, Chrome 제공 당신을 위해 그것을 번역합니다 그러나 우리는 이것을 API로 드러 냈습니다 Google 번역 API라고합니다 어떻게 작동하는지 보여주기 위해 데모로 전환 할 것입니다 데모 기계로 전환 할 수 있습니까? 우리가 있습니다

여기 실제로 API의 방문 페이지입니다 cloudgooglecom/translate 아래로 스크롤하면 실제로 우리가 당신이 볼 수있는 데모가 있습니다

그래서 내가 할 일은 탈환을 클릭하는 것입니다 그리고 언어를 전환하십시오 그래서 우리가 플레이어에게 말할 수있는 유형은, 오, 좋은 경기 재미있게 보내십시오 그리고 우리는 다른 언어로 그것을 할 수 있습니다

그래서 우리가 네덜란드를 선택한다고합시다 응답 속도가 놀라 울 정도로 빨라집니다 우리는 뭔가를 말할 수 있습니다 행운을 빈다 죄송합니다

그리고 다시, 우리는 모든 언어로 전환 할 수 있습니다 하지만 내가 확장하면 보게 될 것입니다 이것은 요청 URL 만 있으면됩니다 우리는 두 개의 매개 변수, 질의 매개 변수를 가지고 있는데, 다음은 소스 텍스트가 무엇인지, 소스 언어가 무엇인지 목적지 언어입니다 그런 다음 청구를 목적으로 API 키를 제공합니다

그게 전부 야 그리고 우리가 얻은 것은 멋진 JSON입니다 우리에게 번역 된 텍스트를줍니다 따라서 게임에 채팅 메시지가 있다면, 이것은 언어간에 번역 할 수있는 방법입니다 괜찮아

슬라이드로 다시 돌아가십시오 그래서 우리는 사람들이 서로 이야기 할 수있게 할지라도, 사람들은 항상 서로에게 친절하지 않습니다 인터넷에서 그 사실을 눈치 챘을 것입니다 그리고 이것이 실제로하는 일은 실제로 다른 플레이어에게 좋지 않은 경험을 선사합니다 한 사람이 대화를 지배 할 때, 또는 다른 사람들에게 상처를주는 사람들의 집단, 그것은 정말로 문제를 일으킨다

그리고 개발자들이 이런 종류의 시나리오를 다루는 방법 요즘 그들은 선수들을위한 메커니즘을 제공하고있다 다른 플레이어를보고하고, 나쁜 행동을보고합니다 어느 단계에서 무리를 모으는가? 진단 정보의 일부 채팅 로그, 어쩌면 그들이 게임 내 녹음 일 수도 있고, 등등 그리고 당신은 그것을 팀에 넘깁니다 그것을 분류해야합니다

그것은 수동 작업입니다 그런 일을 삼겹게하는 것은 많은 시간이 걸립니다 Google에는 Cloud Natural Language (클라우드 자연어)라는 API가 있습니다 실제로 감정을 감지 할 수있는 API 개인의 채팅 메시지 따라서 보고서를 신속하게 검토하는 방법으로, 어디서 신속하게 확인할 수 있습니까? 로그에 문제가있는 부분이있을 수 있습니다

그 분류 과정을 훨씬 더 간단하게 만들 수 있습니다 점점 우리가 게임에서보고있는 것 요즘 개발자들은 AR, 카메라를 사용하는 곳 그리고 그들은 탐지 할 수 있어야합니다 장면에있는 어떤 유형의 물체, 또는 어떤 유형의 위치인지, 아마도 랜드 마크 우리가 보는 또 다른 예는 많은 게임 개발자입니다 당신 선수들에게 길을 제공하고있다

사용자 생성 콘텐츠를 생성합니다 항목 일 수 있습니다 맞춤 이미지 일 수도 있습니다 그것은 심지어지도일지도 모른다 사람들에게 업로드 기능을 제공하면 그들이 좋아하는 것이 무엇이든, 그들은 다시, 모든 사람에게 부적절하다고 생각되는 항목 업로드 그곳에

이제 Vision API라는 API가 있습니다 그리고 그것은 물체 감지와 같은 것들을 할 수 있습니다 또한 명시적인 내용을 표시 할 수 있습니다 이제 Vision API는 정말 멋지다 그것은 당신에게 우리에게 필요한 힘을 줄 수 있기 때문입니다

이전에 사용한 예를 Google 포토에서 사용하고 있습니다 하지만 쉽게 호출 할 수있는 API로 제공 할 수 있습니다 이제 데모로 전환하기 전에, 나는 다만 약간 응답을 얻고 싶다 아무도 그게 뭔지 말해 줄 수 있니? 나는 에펠 탑을 듣고있다 다른 생각? 괜찮아

그래서 우리는 데모 머신으로 전환 할 것입니다 우리는 지금 그 이미지를 볼 것입니다 이것이 비전 API 방문 페이지 cloudgooglecom/vision입니다

그리고 우리가 할 일은 거기에 이미지를 떨어 뜨리는 것입니다 다시 탈옥했다 이것은 다시 한 번 데모입니다 그러나 우리가하는 일은이 이미지를 업로드하는 것입니다 네가 에펠 탑에 대해 말하면 너는 틀렸다

이것은 실제로 라스베가스에있는 파리 호텔과 카지노입니다 이제이 API가 우리에게 응답을 돌려 주었을 때, 실제로 이미지의 어떤 부분을 말했는지 그것은이 표식이 무엇인지를 인식하는 데 사용되었습니다 그래서 당신은 녹색의 하이라이트가 있음을 볼 수 있습니다, 또는 그 이미지 주위의 녹색 경계 상자 그리고 그것은 그것이 에펠 탑이 아니라는 것을 알았던 방식으로, 에펠 탑에는 그 아래에 건물이 없습니다 파리 호텔과 카지노와는 달리

자, 이것이 세계의 진정한 장소이기 때문에, 우리는 유용한 정보를 얻을 수 있습니다 우리는 이것이 이것이 진짜 랜드 마크라는 것을 알 수 있습니다 우리는 어떤 종류의 웹에 대한 링크를 얻을 수 있습니다 이것은 정보입니다 그리고 우리는 물체 감지를 얻습니다

라벨이 붙었 어 우리는 이것이 랜드 마크임을 알 수 있습니다 이것은 관광 명소입니다 실제로, 우리는 심지어이 이미지에서 하늘을 많이 가지고 있습니다 그런 다음 세이프 서치를받습니다

그래서 어떤 이미지인지 알 수 있습니다 나는 당신에게 명백한 이미지의 예를 들어 줄 예정이었습니다 그러나 법적인 노 그래서 우리는 계속 나아갈 것입니다 괜찮아

슬라이드로 다시 움직여주세요 이것이 바로 Vision API입니다 그리고 이러한 유스 케이스 중 일부를 살펴볼 때, API를 사용하면, 당신은 낮은 교수형 과일, 품질의 종류를 해결할 수있어 삶의 유형 문제 정말 당신의 플레이어 경험을 향상시킬 수 있습니다

하지만 당신은 ML 모델의 이점을 얻고 있습니다 ML 전문 지식이 없어도 우리가 당신을 위해 그 일을했기 때문에 우리는 그것을 노출 시켰습니다 이제 우리는이 세 가지 API 만 살펴 봤지만, 우리는 번역 (Translation), 자연어 (Natural Language), 비전 (Vision) 우리는 다른 많은 사람들이 있습니다 우리는 텍스트와 텍스트에 연설을 할 클라우드 스피치를 가지고 있습니다 연설

또한 비디오 인텔리전스 (Video Intelligence) 여기서 우리는 비디오를보고 객체의 위치를 ​​알려줍니다 다른 장면에 있습니다 그래서 우리는 출발, 버스, 비행기, 온갖 종류의 물건들 그리고 우리는 비디오를 기록 할 수 있습니다 그래서 당신은 당신의 비디오를위한 실제 캡션을 얻습니다

특정 타임 스탬프가 있습니다 따라서 게임에서 어떤 종류의 녹음을 할 때, 선수가 지난 몇 분간을 기록 할 수있는 곳 게임 플레이 등등, 비디오 인텔리전스 당신이 선택한 경우 색인의 종류에 좋은 방법이 될 수 있습니다 그러나 당신은 그것을보고 말할 수 있습니다 이들은 매우 고정 된 사용 사례입니다 ML API가 제공하는 것 이상으로 필요합니다

그리고 우리는 거기서도 당신을위한 해결책을 가지고 있습니다 예제 게임을 살펴볼 것입니다 우린 그걸 만들거야 우리가 비행 시뮬레이터를 가지고 있다고 가정합시다 그리고 그것은 매우 사실적인 비행 시뮬레이터입니다

내 그래픽 좀 봐 마치 사진처럼 보입니다 권리? 그것은 사진입니다 하지만이 시뮬레이터는 너무 현실적입니다 절차 적 날씨 생성을 사용했습니다

그리고 우리가해야 할 일은 기상 조건이 변함에 따라, 우리는 우리가 어떻게 날 수 있는지, 어떤 종류의 비행기인지를 알 필요가있다 우리가 사용할 수 있습니까? 플레이어는 어떻게해야합니까? 음, 날씨를 예측하기 위해서는, 구름을 보는 것은 그것을하는 중요한 방법입니다 그리고 몇 가지 카테고리가 있음이 밝혀졌습니다 10 비트가 조금 넘는 구름 그리고 우리가 그 구름들을 볼 때, 구름의 종류 날씨 패턴의 위대한 지표입니다

그러나 문제는 Vision API를 사용하여 지금 바로 Vision API를 통해 유용한 정보 저기 구름이 좀있어 이봐, 하늘이있다 그러나 그것은 그 수준까지는 가지 않습니다 어떤 종류의 구름인지, 이들은 범용 기계 학습이기 때문에 모델

지금, 전통적으로 당신은 말했을 것입니다, 오, 당신의 API가 나를 위해 작동하지 않습니다 나는 갈 필요가있을 것이다 그리고 주문의 기차 전체 ML 나 자신을 모델링해라 ML 전문 기술이없는 당신의 경우, 그것은 거대한 학습 곡선입니다 그것은 극복 할 수없는 문제는 아닙니다

하지만 갑자기 ML을 배워야합니다 그리고 데이터 과학은 실제로 자체 직업입니다 그래서 당신이 쉽게 데리러 갈 수있는 것이 아닙니다 우리가 얻을 수 있다면 좋지 않을까요? 모델을 사용할 준비가 된 것의 이점, 하지만 우리의 커스텀 데이터 세트는? 글쎄, 우리는 Cloud AutoML이라는 것을 가지고 있습니다 이것은 커다란 의미입니다

왜냐하면 커스텀 빌드를 얻을 수 있기 때문입니다 사용 사례를위한 모델이지만 ML 전문가를 필요로하지 않습니다 그리고 우리는 간단한 그래픽 사용자를 통해이 모든 작업을 수행합니다 인터페이스 AutoML Vision을 살펴볼 때, 작동한다는 것은 라벨이 붙은 세트를 제공한다는 것입니다

이미지, 사진 데이터 세트 사용자 인터페이스를 통해 전달하고 업로드합니다 AutoML Vision에 그것은 모델을 훈련시킵니다 그런 다음 API를 배포하여 API로 제공합니다 당신은 쉽게 섭취 할 수 있습니다

이제, 그것은 거대합니다 왜냐하면 하나의 모델을 훈련시키는 작업이 많기 때문입니다 그러나 모델을 수평 적으로 배치하고 배치하는 것도 많은 작업입니다 당신이 그것에 의지 할 수있는 그런 것 우리는 조금씩 살펴볼 것입니다

그래서 기계 학습은 일반적으로 작동합니다 이 선을 따라 뭔가가있다 자, 이건 협박하려는 의도가 아니야 이것은 실제로 TensorFlow Playground의 스크린 샷입니다 TensorFlow는 오픈 소스 프레임 워크입니다

Google이 기계 학습을 위해 만들었습니다 그것은 세계에서 가장 유명한 ML 프레임 워크입니다 TensorFlow 웹 사이트에서이 놀이터 시각적으로 경험을 쌓을 수있는 방법입니다 ML 모델을 구축하십시오 그리고 곧 볼 수있는 것 상단에는 여러 매개 변수가 있습니다

우리는 이러한 하이퍼 매개 변수를 호출합니다 학습 속도 및 활성화 기능과 같은 것들 그리고 나서 우리는이 칸들을 가지고 있습니다 각 열을 레이어라고합니다 그리고 그 레이어에서 우리는 뭔가를 식별 할 수있는 특정 기능을 추출하는 우리의 유스 케이스에 대한

목표는 실제로이 출력 필드에 있습니다 따라서이 출력 이미지에서 이러한 점들은 실제로 테스트 데이터를 나타냅니다 그래서 우리가 ML 모델을 훈련 할 때, 우리는 거대한 데이터 세트를 가지고 있습니다 데이터 세트가 클수록 좋습니다 그래서 당신은 그것을 소위 말하는 것으로 나눕니다

교육 데이터 세트가 ML에 사용되도록 교육 학습 할 모델 그런 다음 테스트 데이터 세트가 있습니다 그 모델이 유효하다는 것을 확인하기 위해 사용하는 것입니다 적절하게 작업 이 예에서는 Google 데이터가 있습니다

그리고 출력에서 ​​볼 수있는 점들 각각 실제로 테스트 데이터를 나타냅니다 그것이 옳은 대답입니다 그러면 파란색 점과 주황색 점이 보입니다 그리고 당신이보고 싶은 것은 점 뒤에 배경이 있다는 것입니다 점의 색상과 일치합니다

이것이 바로 우리의 ML 모델이 예측하는 부분입니다 여기에서 우리가 한 것은 많은 레이어가 있다는 것입니다 그리고 우리가 가지고있는 나선형의 데이터 패턴을 보게 될 것입니다 꽤 괜찮아 그것은 그 일을합니다

그러나 그것은 복잡합니다 그리고 기계 학습의 과정 당신이하는 일은 일련의 매개 변수로 시작하는 것입니다 너는 그것을 훈련시킨다 너 시험해 너는 너의 행복 여부를 봐

그리고 나서 그것을 조정하면 다시 돌아옵니다 그것을 훈련 시키십시오 그것을 테스트하십시오 그것을 조정해라 그것을 훈련 시키십시오

그것을 테스트하십시오 당신이 모델이 될 때까지 헹구고 반복하십시오 너는 행복해 이제 거대한 데이터 세트로 교육 실제로는 많은 시간이 걸립니다 따라서 많은 컴퓨팅 리소스가 필요합니다

그러나 실제로는 아직도 많은 실제 시간이 필요합니다 AutoML을 구축 할 때 우리가 생각한 것은, 이 프로세스를 순차적으로 수행하는 것이 아니라, 우리가 평행하게 할 수 있다면 좋지 않을까요? 우리는 ML 모델 전체 세트를 제안 할 수 있습니다 AutoML 컨트롤러를 사용하면 이러한 기능을 제공 할 수 있습니다 Google 클라우드의 다른 컴퓨터로 그리고 우리는 사용 가능한 가장 높은 사양의 기계를 사용할 수 있습니다 가장 빠른 CPU, 원하는 경우 가장 빠른 GPU, GPU는 ML 모델을 학습하는 좋은 방법이기 때문에 이를 추론을 위해 사용하십시오

그러나 우리는 한걸음 더 나아 간다 Google 클라우드는 TPU도 제공합니다 이제 TPUs는 Tensor Processing Units를 나타냅니다 그리고 이것은 Google이 구축 한 맞춤형 실리콘입니다 Google Cloud에서만 독점적으로 제공합니다

따라서 GPU가 CPU보다 빠른 속도의 주문 인 경우, TPUs는 GPU보다 몇 배 빠릅니다 어제 I / O 개발자에게 예를 들어 보겠습니다 기조 연설, 우리는 회사라는 예를 들었다 재귀 제약 TPU로 훈련 한 시간은 24 시간에서 ~ 15 분

15 분 내내 하루 종일 ML 모델을 만들려고한다고 상상해보십시오 그리고 당신은 끊임없이 훈련과 조정을하고 있습니다 네가해야 할 사이클, 너 가능한 한 응축시키고 싶다 그래서 AutoML은 모든 것에 대해 걱정하지 마십시오

우리는 그들을 모두 보내 버릴뿐입니다 그리고 기차를 타기까지 얼마나 걸릴지 결정합니다 그래서 청구서 작성의 교육 측면 교육 시간에 따라 작동합니다 우리는 1 시간 동안 무료로 제공합니다 그리고 그 시간이 끝날 때 우리는 가장 잘 수행하는 모델을 살펴보십시오

그리고 우리는 그것을 제공합니다 우리의 데이터를 바탕으로 우리가 발견 한 것은 AutoML이 더 복잡한 ML 모델을 생성합니다 인간이 생산하는 것보다 그러나 그들은 또한 더 잘 수행합니다 AutoML Vision의 예를 살펴 보겠습니다

우리가 기계로 바꿀 수 있다면 고맙습니다 그래서 여기에 AutoML Vision을위한 콘솔이 있습니다 그리고 우리가 가진 것은 레이블이 붙은 일련의 이미지입니다 우리의 구름 예제 인 비행 시뮬레이터를 기억하십니까? 내가 한 것은 이미지 톤을 업로드 한 것입니다

거기에 약 1,800 개의 이미지가 있습니다 그리고이 이미지들은 분류되어 있습니다 왼쪽에는 라벨이 있습니다 그래서 구름이 10 종류 있다고했습니다 우리는이 예제에서 5 개의 레이블만을 사용하고 있습니다

그리고 권운, 적란운 및 적운이 보입니다 약 500 개의 이미지가 있습니다 나는 알토 운석과 알토 층을 위해 많은 것을 가지고 있지 않았다 그래서 약 200과 135가 있습니다 그러나 훈련을 마치면 볼 수있는 것 내가 12 시간 동안 그렇게 말한 것입니다

그리고 거의 90 % 정도의 모델이 등장했습니다 그것의 정확성 테스트 데이터에 대한 평가 방법을 살펴보면 우리는이 것이 혼란이라고 말합니다 매트릭스, 근본적으로 말하면, 얼마나 잘 이 모델은 테스트 데이터를 식별 할 때 사용 했습니까? 우리가 제공하는 것? 따라서 500 개의 이미지를 제공 한 이미지를 보면, 당신은 약 90 %의 정확도를 얻습니다 이미지가 적은 이미지는 60 년대에 불과합니다

어쨌든, 우리는 앞으로 나아가서 무엇을 예측할 것인가? 이 두 구름은 마치 보입니다 이제는 일반적으로 콘솔입니다 여기서는 샘플 데이터를 일부만 보겠습니다 API 엔드 포인트가 있어야합니다 그걸 잠시 후에 보여 드리죠

그러나 어쨌든, 당신은 99 %의 정확도로 여기서 볼 것입니다, 또는 자신감, 그것은 이것이 적운이라고 말했다 그리고 737 %의 자신감으로, 이것은 이것이 적란운이라고 말합니다 그리고 그것에 대해 훨씬 더 확신합니다 다음 것보다 아래로

그래서 우리 모델은 실제로 정말 훌륭하게 해냈습니다 이제는 API 엔드 포인트 측면에서, 실제로 예제 코드를 제공합니다 컬 (curl) 명령문처럼 사용하고 싶을 지, 아니면 API를 직접 호출 할 수있는 방법에 대한 Python 코드 샘플을 제공합니다 이제 슬라이드로 다시 전환하십시오 이제 비행 시뮬레이터 문제를 해결했습니다

권리? 우리는 구름을 사용하여 그 여부를 탐지 할 것입니다 그리고 우리는 끝났어 자, AutoML Vision은 0 코드를 작성해야한다는 것을 의미했습니다 그리고 우리는 어떻게 걱정할 필요조차 없었습니다 이 것은 인프라에 배치 될 것입니다

전 세계에 봉사했습니다 그러나 당신은 아, 그것은 단지 비전의 예라고 말할 것입니다 정기적 인 예와 같이 다른 정상적인 것을주세요 나는 새로운 제품에 대해 이야기하고 싶다 우리가 몇 주 전에 시작 했어

AutoML 테이블이라고합니다 그리고 그 말장난을 용서하지만 그것은 게임 체인저입니다 AutoML Tables를 사용하면 구조화 된 데이터를 가져올 수 있습니다 이제 그 데이터는 스프레드 시트가 될 수 있습니다 그것은 귀하의 데이터베이스에서하실 수 있습니다

AutoML 테이블로 압축하면, 당신을 위해 ML 모델을 훈련시킬 곳, 규모에 맞게 배치하십시오 그래서 당신은 말할 수 있습니다 AutoML 테이블에 사용할 수 있습니까? 글쎄, 사실, 당신의 상상력은 여기서 한계입니다 당신은 게임 난이도를 맞추어 볼 수 있습니다 너의 선수 유형에 맞춰 어떤 주어진 만남에서나 가지고있다

그래서 당신은 실시간으로 어려움을 바꾸십시오 당신이 선수 인 싸우는 상사 일 수도 있습니다 플레이어를 개조하는 방법을 살펴볼 수 있습니다 앱 전환을 통해 지불하는 플레이어로 과거 데이터를보고 AutoML 테이블을 학습하십시오 당신은 사기를 확인하기 위해 그것을 사용할 수 있습니다

이것은 게임 개발자가 우리에게 말해주는 매우 공통적 인 도전입니다 즉, 우리는 끊임없이 이러한 사기 거래를합니다 그리고 물론, 당신도 도울 수 있습니다 게임에서 부정 행위를 식별합니다 다시 한 번 역사적인 데이터를 기반으로합니다

따라서 AutoML 테이블은 엄청납니다 그리고 Cloud AutoML은 일반적으로 다시, ML API와 마찬가지로 몇 가지 범주로 나뉩니다 우리는 비전과 비디오 인텔리전스와 같은 사이트 유형을 갖추고 있습니다 우리에게는 자연어와 번역이 있습니다 나는 자연어와 번역을 불러 내고 싶다

특히 게임에 적합합니다 그래서 나는 번역의 예제를 먼저 보냈습니다 그리고 우리는 행운을 빈다 재미있게 보내십시오 우리는 좋은 게임이라고 말했다

대부분의 게이머들은 그렇게 말하지 않습니다 그들은 속기를 사용합니다 권리? 특히 자신의 게임을 볼 때, 맞춤 인벤토리 세트가 있어야합니다 항목, 문자 카드 게임을 만들면 아마도 카드 덱을 만들 수 있습니다

AutoML을 사용하면 이러한 모델을 교육 할 수 있습니다 귀하의 맞춤 용어를 배우고 그것에 적응하십시오 그리고 번역을 제공 할 수 있습니다 자연 언어 감정 탐지 기능도 제공합니다 그리고 물론, 우리는 AutoML Tables에 대해서 이야기했습니다, 그것은 정말로 큰 문제입니다

지금까지 우리는 선반 제품들에 대해 살펴 보았습니다 우리가 당신을 제공합니다 ML이 정말로 어디에 있는지 이야기하고 싶습니다 게임 개발에 유용합니다 우리는 당신을 돕는 많은 제품을 제공합니다

이 ML 모델을 만들면됩니다 그러나 ML은 앞서 말했듯이 초기 프로세스입니다 우리는 몇 가지 매개 변수를 조정할 훈련의 우리는 모델을 훈련시킨다 우리는 그것을 테스트합니다

그리고 나서 우리는 처음으로 돌아가서 그것을합니다 우리가 만족하는 모델을 찾을 때까지 반복해서 그 후반부도 마찬가지로 중요합니다 일단 당신이 만족스러워하는 모델을 가지고 있다면, 대규모로 배포하는 방법은 무엇입니까? 게임의 일부로 로컬로 배포합니까? 모바일 게임이라면? 콘솔이나 데스크탑으로 보내십니까? 또는 클라우드에서 AI를 실행합니까? 여기서 AI 시뮬레이션을 할 수 있어야합니까? 전 세계에 어떻게 도달 할 수 있습니까? 당신의 선수가 어디에 있는지에 따라? 글쎄, 우리는 Google AI 플랫폼이라고 부릅니다 Google AI 플랫폼은 교육 및 예측 기능을 제공합니다

서비스 ML을위한 강력하고 유연한 도구가 있습니다 데이터 과학, 그리고 실제로 확장 가능하고 견고한 Google이 자체 서비스를 실행하는 인프라 우리가 한 다른 일은 우리가했습니다 구체적으로 가상 머신 이미지를 사용할 수있게했습니다 깊은 학습에 유용합니다

또한 Compute Engine이라는 제품에서 실행할 수 있습니다 VM을 호스팅하는 곳입니다 그러나 게임의 가상적인 예를 들어 보겠습니다 이 게임 자체는 사실 실제입니다 이것은 "Snowball Storm"이라고 불리는 미니 게임입니다

그리고 그것은 Google Santa Tracker의 일부입니다 산타 트래 커에 대해 들어 본 적이 없다면, SantaTrackergooglecom에서 확인하십시오 그러나이 게임에서 우리는 약간의 경의를 표했다

전투 로얄 장르에 그래서 그것의 시작에, 당신은 작은 엘프입니다 얼음으로 만든 섬에 낙하산을 탄다 그리고 다른 플레이어에게 눈덩이를 던져보아야합니다 그들을 제거하십시오

얼음은 시간이 지남에 따라 가장자리에서 녹습니다 그래서 우리는 선수들을 한 곳에 모으고 있습니다 현재이 게임의 인공 지능과 봇 어떤 ML 모델에도 내장되어 있지 않습니다 그들은 아주 간단합니다 우리가 우리 자신의 게임을 위해 이런 것을 만들려면, 우리는 이것과 비슷한 파이프 라인을 만들 수 있습니다

그래서 나는 이것을 통해 당신을 걸을거야 왼쪽 편에는 우리가 가진 것들이 있습니다 서로 대항하여, 어떤 플레이어 대 플레이어 성냥 우리가 원하는 것은 기록하고 로그하는 것입니다 그 정보는 우리가 할 수있는 것입니다

우리가 훈련 할 방법 때문에 이 봇은 감독 학습이라는 기술을 사용하고 있습니다 그래서 일찍부터 나는 DeepMind가 보강 학습을 사용했다고 말했다 인공 지능은 그 자체를 가르쳤다 감독 학습을 통해이 모든 데이터를 수집하고, 다른 플레이어가 게임을하는 방식에 따라 로봇을 훈련시킬 수 있습니다 그래서 다른 정보를 배울 것입니다

그래서 우리가 할 일은 그 모든 것을 포착하는 것입니다 우리가 기록 할거야 그리고 우리는 그것을 데이터베이스에 저장하려고합니다 Google BigQuery라고합니다 또한 BigQuery를 사용하면 페타 바이트 크기의 NoSQL 데이터베이스를 사용할 수 있습니다

그래서 그것은 매우 놀랍습니다 그리고 내가 페타 바이트 크기를 조정한다고 말하면, 수초 내에 페타 바이트 단위의 데이터를 스캔 할 수 있습니다 그래서 우리는 모든 로그를 저장하려고합니다 플레이어가 BigQuery에 로그인합니다 우리는 그것을 수출하고 실제로 클라우드 저장소에서 사용할 수 있습니다

파일을 저장할 수 있습니다 개인용 스토리지로 생각할 수 있습니다 Google 드라이브와 비슷하지만 사용자 인터페이스가 아닌 또는 그런 것 말 그대로 개인 파일을 저장하는 것입니다 귀하의 기업을 위해

따라서 BigQuery에서 내보내고 Cloud Storage에 저장하십시오 그런 다음 TensorFlow를 사용하여 모델을 작성합니다 우리의 훈련 단계에서 여기서 Compute Engine을 사용할 것입니다 내가 전에 말했던 것입니다

우리는 가상 머신 이미지를 실행합니다 우리는 그 깊은 학습 이미지를 사용할 것입니다 앞서 학습 한 인공 지능 모델을 훈련하기 위해 이야기했던 우리의 역사적인 선수 데이터 그리고 나서 우리가 그 모델을 가지고 나면 그 모델을 내보낼 것입니다 그것을 클라우드 스토리지에 저장하십시오

지금, 나는 정말로 어려운 부분에 대해 글로 나타내었다 이것은 훈련입니다 그러나 이것은 당신이 ML 전문 기술을 필요로하는 곳입니다 그래서 당신이나 당신의 조직이 일종의 단계로 준비하고 이것을 시도하십시오, 그냥 TensorFlow를 실행하는 것 이상임을 알아야합니다 전체 파이프 라인이 있어야합니다

이 데이터를 수집합니다 대규모로 할 수 있어야합니다 이상적으로는 교육 단계에서, 당신은 가능한 한 빨리 그것을하고 싶다 그래서 당신은 반복의 정말로 빠른 사이클을 얻을 수있다 그 다음 쪽은 추론입니다

그래서 우리는 AI 모델을 가지고 있습니다 우리가 할 수 있기를 원하는 것은 예측입니다 자, AI가 서버 측을 운영 중일 수 있습니다 그리고이 경우에는 그렇게 될 것입니다 Cloud ML 엔진에서 우리가 쉽게 할 수 있습니다

그냥 추론 API 호출을 만들고, 말하자면, 이봐, 내 다음 행동은이 봇을 위해 무엇이되어야 하는가? 그 봇? 그리고 우리 고객을 향해 나아갈 때, 우리가하는 모든 일은 예측을 요구하고 있습니다 그래서 당신은 말할 수 있습니다 게임 개발을 위해 기계 학습을 사용합니까? 어떤 용도로 사용합니까? 가장 분명한 것은 실제로 품질 보증 및 테스트입니다 오늘 우리가 레벨 디자인이나 게임을 변경해야 할 때 균형, 우리는 많은 시간을 소비해야합니다 우리가 그 균형을 깨뜨리지 않았는지 확인하기 위해 그것을 테스트하고, 우리는 새로운 버그를 도입하지 않았습니다

그리고 오늘날 우리는 사람들에게 의존하고 있습니다 ML 봇을 만들 수 있다면 당신을 위해 게임을 할 수있는 당신, 당신 전반적으로 테스트를 병렬로 수행 할 수 있습니다 수천 대의 기계에 농장을 내놓을 수 있습니다 게임을 재생할 필요가 없습니다 실시간 속도로

가능한 빨리 시뮬레이션 할 수 있습니다 다시 말하지만, 품질 보증 및 테스트 프로세스의 측면에서 볼 때, 당신은 그것에 대한 빠른 처리주기를 얻을 수 있습니다 우리가 더 똑똑한 미래를 상상해보십시오 플레이어가 아닌 플레이어 캐릭터 그들과 현실적인 대화를 나눌 수 있고, 현실적인 선택을하십시오

그 NPC는 플레이어를 안내하는 데 사용될 수도 있습니다 그래서 우리는 우리 파트너 중 일부와 많은 것을 보았습니다 그들이 정말로 복잡하게 여기는 곳, 사람들이 구축해야하는 카드 게임 정말 균형 잡힌 갑판 하지만 새로운 선수에게는 정말 힘든 일입니다 어떤 종류의 선택을해야하는지 알기

아마도 전투 로얄 게임 일 것입니다 균형이 잘 잡힌 팀을 만들고자합니다 게임에 익숙하지 않은 사람이나 캐주얼 플레이어 인 경우, 그들은 올바른 선택을 할 수 없습니다 ML은 훌륭한 NPC 또는 추천을 구축하는 데 도움이 될 수 있습니다 그 과정을 통해 우리 선수를 도울 엔진, 경쟁력을 유지할 수있는 올바른 선택을하도록 도와줍니다

이제 품질 보증 및 테스트에 도움이되는 봇이 있다면, 그 봇은 또한 실제 선수들에게 사용될 수 있습니다 그래서 분대 기반 게임에서 좌절하지 않습니까? 우리 선수 중 한 명이 떨어지면 이제 우리는 인공 지능과 함께 남았습니다 게임에서 정말 나 빠졌거나, 또는 예외적으로 좋은가? 그들이 예외적으로 좋다면 나쁘지 않다고 생각해 그들은 당신 팀에 있습니다 그러나 그들이 다른 누군가의 팀에 아주 좋을 때, 그것은 잘 작동하지 않습니다

훌륭한 포괄적 인 봇을 만들 수 있다면, 당신은 스킬 레벨에 맞는 봇을 제공 할 수 있습니다 또는 그 팀을 특히 잘 보완한다 그 사건들에서 그래서 우리는 오늘 몇 가지 시나리오를 다루었습니다 어디에서 기계 학습, 내 생각, 정말로 무엇으로 혁명을 일으킬 것인가? 게임 개발에서 발생합니다

그래서 시작하고 싶다면 게임에 ML을 적용하면 ML이 없습니다 전문성, API는 좋은 방법입니다 시작하고 삶의 질을 확보하십시오 개선 된 게임 당신의 선수는주의 할 것이기 때문에

이러한 API와의 통합은 정말 간단합니다 말 그대로 API 호출입니다 AutoML은 사용자 정의 모델을 구축하는 데 도움을줍니다 데이터가 포함 된 시나리오의 경우, 다시 ML 전문가가 필요하지 않습니다 그런 다음 단계를 수행 할 준비가되면 문제를 해결할 수있는 자신 만의 AI를 만드는 것 자동화 된 QA 테스트 또는 더 똑똑한 NPC가있는 경우, 그런 다음 AI 플랫폼과 같은 것으로 올라가십시오

속도만으로 모델을 교육하는 데 도움이됩니다 그러나 당신이 그들을 섬기고 규모에 맞게 배치하는 것을 도울 것입니다 오늘 저와 함께 해 주셔서 고맙습니다 여러분의 시간은 우리에게 정말로 귀중합니다 여기에 몇 가지 링크가 있습니다

첫 번째는 AI 제품의 전체 세트입니다 cloudgooglecom/products/ai에서 확인할 수 있습니다 이것들은 특정 게임이 아니지만 게임 내에서 사용됩니다

그리고 나서 cloudgooglecom에서 일련의 게임 솔루션을 제공합니다 / solutions / gaming도 있습니다 트위터에서 저에게 다가 가세요

연락하고 싶다면 훌륭한 I / O가 있습니다 모두들 감사합니다 [음악 재생]

Machine Learning Zero to Hero (Google I/O'19)

[음악 재생] LAURENCE MORONEY : 그래서 첫 번째 질문 물론 나온다 당신은 기계 학습을 보거나 기계 학습에 관해 듣습니다

이 마술 지팡이처럼 보입니다 귀하의 상사가 말하길, 기계 학습을 응용 프로그램에 넣으십시오 또는 신생 업체 소식을 들으면 기계 학습을 어딘가에 넣으십시오 그리고 나서 갑자기 그들은 실용적인 회사가되었습니다 그러나 기계 학습이란 무엇입니까? 정말 그게 전부에요? 특히 코더의 경우 기계는 무엇입니까? 모든 것을 배우고 있습니까? 사실, 당신 중 누구라도 코더라면 손을 빠르게 보여줍니다

그래, I / O 야 나는 우리 모두를 추측한다 맞아, 코더 야 나는 항상 이렇게 말하고있다 그리고 때로는 얼마나 많은 사람들이 코더인지 물어볼 것입니다

3 ~ 4 개의 손이 나옵니다 그래서 우리는 괴짜가되어 오늘날 많은 코드를 보여줄 수있는 재미 있습니다 그래서 저는 기계 학습이 무엇인지에 대해 이야기하고 싶었습니다 시나리오를 선택하여 코딩 관점에서 게임을 작성하는 경우 상상할 수 있습니까? 바위, 종이 및 가위를 연주하는 방법? 그리고 너는 무언가를 쓰고 싶었어

그래서 당신은 손을 바위, 종이, 또는 가위 컴퓨터가이를 인식하고 당신과 함께 할 수 있습니다 실제로 코드를 작성하는 것과 같을 것이라고 생각하십시오 에 대한 카메라에서 이미지를 가져와야합니다

그리고 당신은 그 이미지의 내용을보기 시작해야 할 것입니다 그리고 어떻게 차이점을 말할 것입니까? 바위와 가위 사이에? 또는 차이점을 어떻게 알 수 있습니까? 가위와 종이 사이에? 그것은 결국 많은 코드가 될 것입니다 당신이 써야 할 것이고, 많은 것을 정말 복잡한 코드입니다 그리고 모양의 차이뿐만 아니라 피부 색조의 차이점에 대해 생각해보십시오 및 남성 손과 여성 손, 큰 손과 작은 손, 나 같은 너덜 너클 녀석들, 카르멜 같은 멋진 부드러운 손을 가진 사람들

그러면 어떻게 끝낼까요? 이 작업을 수행하는 데 필요한 모든 코드를 작성할 수 있습니까? 정말 복잡하고 궁극적으로, 쓰는 것은 그리 현실적이지 않습니다 그리고 이것은 우리가 가져 오기 시작하는 곳입니다 기계 학습 이것은 매우 간단한 시나리오이지만 많은 시나리오가 있다고 생각할 수 있습니다 뭔가를하기 위해 코드를 작성하는 것은 정말로 어렵습니다

기계 학습이 도움이 될 수 있습니다 그리고 저는 항상 이런 방식으로 기계 학습을 생각하고 있습니다 전통적인 프로그래밍에 대해 생각해보십시오 그리고 전통적인 프로그래밍에서는 몇 년 동안 우리의 빵과 버터 – 우리 모두는 코더입니다 그것이 무엇인지 표현하는 것에 대해 생각하는 것입니다

프로그래밍 언어로 규칙을 표현하고, Java, Kotlin 또는 Swift 또는 C ++과 같은 Java 응용 프로그램입니다 이러한 규칙은 일반적으로 데이터에 적용됩니다 그런 다음에 우리는 답을 얻습니다 바위, 종이, 가위 에서처럼 데이터는 이미지가됩니다 그리고 내 규칙은 나의 모든 if-thens 일 것이다

해당 이미지의 픽셀을보고 시도합니다 무언가가 바위, 종이 또는 가위라면 그런 다음 기계 학습이이를 뒤집습니다 이것에 축을 넘깁니다 그리고 우리가 말하길, 이봐 요, 이렇게하는 대신에 우리가 이런 모든 규칙에 대해 생각해야하는 것처럼, 우리는 이러한 모든 규칙을 코드로 작성하고 표현해야합니다

우리가 많은 답변을 제공 할 수 있다면, 우리는 이러한 해답에 레이블을 붙이고 기계 추론을 할 수 있습니다 하나를 다른 규칙으로 매핑하는 규칙은 무엇입니까? 예를 들어, 바위, 종이, 그리고 가위, 우리가 말할 수있는,이 바위에 대한 픽셀입니다 그리고 이것은 바위가 어떻게 생겼는지입니다 그리고 수백 또는 수천 개의 이미지를 얻을 수 있습니다 바위를 짓는 사람들의 그래서 우리는 다양한 손, 다양한 피부 색조, 그런 종류의 것들

그리고 우리가 말하길, 이봐, 이건 바위 같아 이것은 종이가 어떻게 생겼는지입니다 그리고 이것은 가위처럼 보입니다 그리고 컴퓨터가 알아낼 수 있다면 이들 사이의 패턴과 가르침을받을 수있다 그리고 그것은이 패턴들이 무엇인지 알 수 있습니다

이제 우리는 기계 학습을합니다 자, 우리는 응용 프로그램을 가지고 있으며 우리는 우리를 위해 이러한 것들을 결정한 컴퓨터를 가지십시오 따라서이 다이어그램을 다시 살펴보면, 우리가 이것을 다시 보아서 우리가 규칙을 만들어내는 것에 대해 우리가 말한 것은 무엇입니까? 좋습니다, 이것은 기계 학습입니다 우리는 답변을 제공해야합니다 우리는 데이터를 피드에 넣고 기계 규칙을 추론 할거야

런타임에 어떻게 보이게 될까요? 어떻게하면 응용 프로그램을 실행할 수 있습니까? 이게 보이는가? 이것이 우리가 훈련 단계라고 부르는 것입니다 우리는 이것을 모델로 부르는 것을 훈련했습니다 그리고 그 모델은 기본적으로 신경망입니다 그리고 저는 신경 네트워크에 관해 많은 이야기를 할 것입니다 다음 몇 분 안에 하지만 그 신경망은

우리는 그것을 감쌀 것입니다 우리는 그것을 모델이라고 부를 것입니다 그리고 런타임에, 우리는 데이터를 전달할 것입니다, 그리고 그것은 우리에게 예측이라고 부르는 것을 줄 것입니다

예를 들어, 제가 많은 바위에서 그것을 훈련했다면, 많은 논문, 그리고 많은 가위, 그리고 나서 주먹을 웹캠에 올려 놓을 것입니다 그것은 내 주먹의 데이터를 얻을거야 그리고 그것은 우리가 무엇을 돌려 줄 것인가? 예측을 불러 내고 이봐 요, 80 %의 기회가 바위 같아요 10 %의 기회가 종이이고 10 %의 확률이 있습니다 가위입니다

그런 것 그래서 기계 학습의 많은 용어 전통적인 프로그래밍과 조금 다릅니다 우리는 그것을 훈련이라고 부릅니다 코딩 및 컴파일 우리는 그것을 추론이라고 부르며, 우리는 추측 밖의 예측

그래서 우리가 그런 용어를 사용하여들을 때, 그게 다 어디서 오는거야 당신이 이미 해왔 던 것들과 꽤 비슷합니다 전통적인 코딩 방식 그것은 단지 약간 다른 용어입니다 이제 데모를 시작하겠습니다

바위, 종이, 가위 모델을 훈련 할 곳입니다 데모는 훈련하는데 몇 분이 걸리지 만, 그래서 나는 물건으로 돌아 가기 전에 그것을 그냥 걷어차 야합니다 그래서 여기서 시작하겠습니다 시작됩니다 그리고 달리기 시작하면, 나는 단지 뭔가를 보여주고 싶다

그것이 통과하는 때 그래서 당신이 컴퓨터를 상상할 수 있다면, 나는 그것에게 바위, 종이의 자료의 전체 낱단을주고, 그리고 가위, 그리고 나는 물어볼거야 그것은 바위, 종이에 대한 규칙을 알아낼 수 있는지, 그리고 가위 따라서 데이터의 개별 항목 나는 그것에 굴복한다, 3에 1가있다 우연히 그것을 처음으로 얻습니다

그것이 순전히 무작위적인 것이고 나는 이것이 무엇이라고 말했습니까? 바위처럼 정확할 가능성이 3 분의 1입니다 그래서 내가 훈련을 시작하면, 그것은 하나입니다 내가 네가 여기에서 보길 바라는 것들 이 정확성은 처음으로 이것을 통해, 정확성은 실제로 – 정확히 0333이었다 때로는이 데모를 실행하면 조금 더 많아집니다

그러나이 아이디어는 일단 교육을 시작하면, 그것은 무작위로 나옵니다 그것은 좋아, 나는 단지 무작위로 물건을 던지고있다 나는 이것을 추측하고있다 그리고 그것은 마치 3 분의 1에 불과했습니다 우리가 계속할 때 실제로 볼 수 있습니다

점점 더 정확 해지고 있습니다 두 번째로는 이제 53 % 정확합니다 그리고 그것이 계속됨에 따라 점점 더 정확해질 것입니다 하지만 슬라이드로 돌아갈거야 우리가 돌아 오기 전에 그것이하고있는 일을 설명하십시오

그 마무리를 볼 수 있습니다 슬라이드로 돌아갈 수 있을까요? 승인 그래서 이런 식으로 쓸 수있는 코드는 이렇게 생겼어 이것은 매우 간단한 코드입니다 신경 네트워크를 만들기위한 것입니다

그리고 내가 여러분에게 초점을 맞추기를 원하는 것, 우선, 빨간색 박스에서 설명한 것들입니다 그래서 이것들은 신경망과 출력에 대한 입력입니다 신경 네트워크에서 오는 그래서 신경 네트워크에 대해 이야기하는 것을 좋아합니다 I / O, 입력 / 출력 때문에 I / O에서

그리고 여러분은 입력과 출력에 대해 많이 이야기 할 것입니다 이걸로 그래서 이것에 대한 입력은 이미지의 크기입니다 내가 먹을 모든 이미지 바위, 종이 및 가위의 신경망에 150 평방이며 3 바이트 색상입니다 그래서 당신은 150 x 150을 3로 봅니다

그리고 나서 이것의 결과가 나옵니다 세 가지가되는 것, 왜냐하면 우리는 세 가지 다른 것들을 분류해서 – 바위, 종이, 또는 가위 그래서 항상 신경망을 볼 때, 그것들은 정말로 처음 보는 것들입니다 입력 내용은 무엇입니까? 출력은 무엇입니까? 그들은 같은 중요시하는 점은 무엇입니까? 하지만이 신비한 일이있다 우리가 만든 중간에 이 tf

keraslayersDense와 거기에 512가 있습니다 그리고 많은 사람들이 궁금해합니다 그 512 가지가 뭐야? 음, 시각적으로 설명해 보도록하겠습니다

그래서 시각적으로, 무슨 일이 일어나고있는 것은 그 512 가지가 무엇인지입니다 이 도표의 중심에 그들에게 512 개의 기능이 있다고 생각하십시오 그리고 그 함수들은 모두 내부 변수를 가지고 있습니다 그 내부 변수는 임의의 상태로 초기화 될 것입니다 그러나 우리가하고 싶은 것은 우리가 시작할 때입니다

이미지들로부터의 픽셀들을 이들에 통과시킴으로써, 우리는 그들이 시도하고 알아 내려고합니다 그 입력에 근거하여 어떤 종류의 산출물이, 하단에 원하는 출력을 줄 것입니까? 따라서 함수 0은 모든 픽셀을 잡아낼 것입니다 함수 1은 모든 픽셀을 잡아낼 것입니다 함수 2는 모든 픽셀을 잡아낼 것입니다 그리고 그 픽셀들이 암석의 모양이라면, 우리는 함수 0, 1, 2 개는 최대 511 개까지 출력 할 수 있습니다

왼쪽 하단의 상자에 – 1을 붙이세요 그 상자에 그리고 종이와 비슷합니다 우리가 말하면, 좋아, 픽셀이 이렇게 보일 때, 우리는 F0, F1 및 F2의 출력물을이 상자로 이동하기를 원합니다 이것이 학습 과정입니다

그래서 모든 일이 일어나고 있습니다 기계 학습에 대해서 이야기 할 때입니다 이러한 함수에서 내부 변수를 설정하고 있습니다 그래서 우리는 원하는 출력을 얻습니다 자, 그 내부 변수, 그냥 물건을 좀 더 혼란스럽게하는 것, 기계 학습 용어에서 매개 변수라고하는 경향이 있습니다

그리고 나에게는 프로그래머로서 처음에는 힘들었습니다 이해해야합니다 왜냐하면 저에게 매개 변수는 무언가입니다 나는 기능을 전달한다 그러나이 경우, 기계 학습자의 말을 듣는 순간 매개 변수에 대해서는 값입니다

설정 될 함수 내부 시도하면서 변경 될 것입니다 그 입력을 그 출력에 어떻게 일치 시킬지 배웁니다 따라서 코드로 돌아가서 이 행동을 다시 보여주기 위해서 – 지금, 이전에 내가 말한 입력 양식을 기억하십시오 150 x 3 (픽셀 단위)입니다 나는 미리보기에서 보여 줬다

나는 여기에 회색 박스로 시뮬레이션하고있다 그러나 그것들은 내가 보여준 픽셀들이다 이전 다이어그램에서 제 기능은 중간에있는 고밀도 레이어, 즉 512입니다 그래서 그것은 무작위로 초기화 된 512 개의 함수입니다

또는 반 무작위로 초기화되었습니다 내 입력을 내 출력과 일치 시키도록 훈련하려고합니다 그리고, 물론, 바닥 – 그 3 개 내 결과물이 될 세 개의 뉴런입니다 그리고 저는 처음으로 뉴런이라는 단어를 말했습니다 그러나 궁극적으로, 우리가 뉴런에 대해 말할 때 그리고 신경 네트워크, 그것은 실제로 아무것도 아니에요

인간의 두뇌와 관련이있다 그것은 매우 거친 시뮬레이션입니다 인간의 두뇌는 일을합니다 그리고 시도하고 그림을 그리는 이러한 내부 기능 입력을 출력에 일치시키는 방법, 우리는 그 뉴런을 호출합니다 그리고 내 산출물에서, 그 3 개는 바닥에 있습니다

또한 뉴런이 될 것입니다 이것이 바로이 "신경 네트워크"의 이름입니다 그것은 신비스럽고 특별한 약간의 소리를내는 경향이있다 우리가 그렇게 부를 때 그러나 궁극적으로, 그들에 대해 생각하십시오

무작위로 변수를 초기화하는 함수로 시간이 지남에 따라 시도 할 것입니다 변수의 값을 변경하려면 입력이 우리가 원하는 출력과 일치하도록합니다 그러면이 줄이 있습니다 modelcompile 줄입니다

그리고 그게 어떻게 될 것입니까? 그것은 일종의 환상적인 용어입니다 컴파일을 실제로하고 있지 않습니다 이전과 같이 코드를 바이트 코드로 변환합니다 그러나 이것에 대한 두 가지 매개 변수에 대해 생각해보십시오 그리고 이것들은 가장 중요한 부분입니다

기계 학습에서 배우기 – 그리고 손실과 최적화입니다 그래서이 아이디어는이 두 가지의 역할입니다 기억해라, 더 일찍, 나는 말했다 모든 함수를 무작위로 초기화 할 것입니다 그리고 무작위로 초기화한다면 나는 바위처럼 보이는 것을 지나가고, 3 번에 1 번있다

바위, 종이 또는 가위처럼 바로 잡을 것입니다 그래서 손실 함수는 무엇입니까? 그것은 수천 번에 걸친 결과를 측정합니다 나는 그렇게한다 그것은 얼마나 잘했는지 또는 얼마나 나쁘게 그랬는지 알아 낸다 그런 다음이를 기반으로 데이터를 전달합니다

다른 함수 (Optimizer 함수라고 함)에 연결합니다 그리고 Optimizer 함수는 다음 추측을 생성합니다 여기서 추측은 그 512의 매개 변수로 설정됩니다 작은 기능, 그 512 뉴런 그리고 우리가 이것을 계속 반복한다면, 우리는 우리의 데이터를 전달할 것입니다 우리가 살펴 보겠습니다

우리는 추측을 할 것입니다 우리는 얼마나 잘했는지 또는 얼마나 심하게 우리가 한 짓을 볼 것입니다 그런 다음이를 토대로 최적화하고, 우리는 또 다른 추측을 할 것입니다 그리고 우리는 반복, 반복, 반복, 우리의 추측이 나아질 때까지, 그리고 더 좋고 더 나아질 때까지 그리고 그것은 모델에서 일어나는 일입니다

여기에 모델이 있다는 것을 알 수 있습니다 "ee-pocks", "epics"- 발음 방법에 따라 – 100입니다 모든 일은 그 사이클을 100 번하고 있습니다 모든 이미지에 대해 매개 변수를 살펴보십시오 그 매개 변수를 맞추십시오

맞춰봐 얼마나 좋았는지 또는 얼마나 나쁜지 측정하십시오 그런 다음 계속 반복하십시오 그러면 최적화 프로그램이이를 작성합니다 더 좋고 더 좋고 더 좋다

그래서 처음으로 상상할 수 있습니다 당신은 대략 3 번에 대략 하나씩 그것을 얻을 것입니다 후속 시간, 그것은 얻을거야 더 가깝고 가까워지고 더 좋고 더 나아졌습니다 자, 이미지에 대해 조금 아는 사람들 그리고 이미지 처리가 진행됩니다 좋습니다

그러나 조금 순진합니다 이미지의 모든 픽셀을 던지고 있습니다 그리고 아마도 많은 픽셀들이 설정되지 않았을 것입니다 – 신경망에 넣고 그 픽셀 값을 알아 내려고 노력하십시오 나는 그것을 조금 더 똑똑하게 할 수 있을까? 그리고 그것에 대한 답은 예입니다 우리가 할 수있는 방법 중 하나 뭔가를 사용하는 것보다 조금 더 똑똑하다

소용돌이 치기 자, 회선은 복잡한 용어입니다 그 말장난을 용서하면 그러나 컨볼 루션 뒤에있는 아이디어는 어떤 종류의 이미지 처리를 해본 적이 있다면, 이미지를 선명하게하거나 이미지를 부드럽게하는 방법 Photoshop과 같은 것들과 똑같은 것입니다 따라서 회선으로 생각하면 아이디어가 생깁니다

이미지의 모든 픽셀에서 예를 들어,이 사진은 손에 들어 있습니다 손톱에있는 픽셀 중 하나를보고 있습니다 그리고 그 픽셀은 왼쪽의 상자에서 192라는 값이됩니다 따라서 이미지의 모든 픽셀을 살펴 본다면 당신은 바로 그 이웃들을 보았습니다 그런 다음 필터라는 것을 얻습니다

오른쪽의 회색 상자입니다 그리고 픽셀 값을 곱하면됩니다 필터의 해당 값만큼 그리고 당신은 픽셀의 모든 이웃에 대해 그렇게합니다 픽셀의 새로운 값을 얻는다

이것이 회선 개념입니다 자, 우리 중 많은 사람들, 당신이 이것을 해본 적이 없다면 전에, 당신은 생각하고 앉아 있었을 것입니다, 왜 지구상에 내가 그걸 할까? 음, 그 이유는 컨볼 루션을 발견 할 때 필터를 찾으면 정말, 이미지에서 기능을 추출하는 데 정말 능숙합니다 그래서 내가 예를 들자 왼쪽 이미지를 보면 이 필터를 적용하면, 오른쪽 이미지가 나옵니다 자, 여기서 일어난 일은 이미지 왼쪽에는 이미지의 노이즈를 많이 버렸습니다

그리고 나는 수직선을 감지 할 수있었습니다 이와 같이 필터를 적용함으로써, 수직선은 곱셈을 통해 살아남는다 필터의 그리고 나서 마찬가지로, 이와 같은 필터를 적용하면, 수평선은 생존한다 그리고 거기에 많은 필터가 있습니다 무작위로 초기화 할 수있는 따기와 같은 일을하는 것을 배울 수있다

눈이나 귀, 손가락과 같은 이미지의 항목 손톱, 그리고 그런 것들 이것이 바로 컨볼루션 뒤에있는 아이디어입니다 이제, 다음은, 좋아, 만약 내가 많은 처리를 할 예정이다 이 같은 내 이미지에, 나는 훈련을 할거야, 수백 개의 필터가 있어야 할 것입니다 내 이미지에서 다른 기능을 선택하려고하면 내가 처리해야하는 많은 데이터가 될 것입니다

그리고 이미지를 압축 할 수 있다면 좋지 않을까요? 압축은 무언가를 통해 이루어집니다 풀링 (pooling) 그리고 그것은 매우 간단합니다 때로는 매우 복잡한 용어로 보입니다 간단한 것을 설명하기

그러나 우리가 풀링에 대해 말할 때, 나는 예를 들어 이미지에 2 x 2 풀을 적용하려고합니다 그리고 그것이 할 일은 앞으로 나아갈 것입니다 픽셀들을 취하기 위해 2 x 2– 네가 내 왼쪽을 본다면, 16 개의 가상 픽셀이 있다면 – 나는 왼쪽 상단 구석에서 4 위를 차지할 것이다 그리고 그 4 명 중, 나는 가장 큰 가치를 뽑을 것입니다 그리고 나서 오른쪽 위 모서리에있는 다음 4 개, 그 4 명 중, 나는 가장 큰 가치를 뽑을 것이고, 등등

그래서 그 일은 효과적으로 버리는 것입니다 내 픽셀의 75 %를 유지하고이 두 가지 각각에 최대치를 유지하십시오 x 2 작은 단위 하지만 그것의 영향은 정말 흥미 롭습니다 우리가 회선과 결합하기 시작할 때

그래서 내가 전에 만든 이미지를 보면 내가 그 사람의 이미지에 필터를 적용한 곳 계단을 오르면 나는 그걸 풀고, 나는 오른쪽에있는 이미지를 얻는다 이것은 1/4이다 원의 이미지의 사이즈 그러나 중요한 정보를 잃어 버릴뿐만 아니라, 심지어 중요한 정보의 일부를 강화합니다 나왔다 그래서 당신이 convolutions를 사용하여 시작하면 풀링은 당신의 친구입니다 128 개의 필터가있는 경우 (예 : 이미지에 적용하면 당신의 이미지 사본을 128 장 가지고 있습니다

당신은 128 배의 데이터를 가지게 될 것입니다 그리고 수천 개의 이미지를 다룰 때, 그것은 정말 빨리 당신의 훈련 시간을 늦출 것입니다 하지만 풀링하면 속도가 빨라집니다 이미지의 크기를 줄임으로써 이제 우리가 신경망으로 학습을 시작하기를 원할 때, 지금은 그것의 경우입니다 헤이, 나는 정상에 나의 이미지를 가지고있다

나는 그것에 회선을 적용 시작할 수 있습니다 예를 들어, 내 이미지는 웃는 얼굴 일 수 있습니다 그리고 하나의 회선은 그것을 웃는 얼굴로 유지할 것입니다 또 다른 하나는 머리의 원형 윤곽을 유지할 수 있습니다 또 다른 하나는 모양을 변화시킬 수 있습니다

머리의, 그런 것들 그리고 내가 이것들에 점점 더 많은 회선을 적용하기 시작합니다 더 작고 작은 이미지를 얻는 대신 지금은 나 대신 내가 분류하려고하는 크고 뚱뚱한 이미지를 가지고 있고, 내가 배워야 할 특징을 골라 내려고하는 것, 나는 그것의 특징을 강조하는 작은 이미지를 많이 가질 수 있습니다 예를 들어, 바위, 종이, 가위, 내 회선은 어떤 경우에는 5 개의 손가락을 보여줄 수도 있고, 또는 네 손가락과 엄지 손가락 그리고 저는 이것이 종이가 될 것이라는 것을 알고 있습니다

아니면 아무 것도 보이지 않을 수도 있습니다 그리고 나는 그것이 바위가 될 것이라는 것을 압니다 그리고 기계 학습 과정을 시작합니다 이것들은 훨씬 더 간단합니다 이렇게 빨리 보여주기 위해서 – 나는이 슬라이드에 QR 코드를 넣었습니다

그래서 여기에 보여줄 모든 코드를 오픈 소스했습니다 우리는 끝까지 이야기하고 있습니다 그리고 이것은 학습서의 QR 코드입니다 너는 바위, 종이, 가위 모델 그러나 일단 우리가 회선을하면 – 그리고 이전 슬라이드에서, 당신은 여러 차례의 전환이 일어나는 것을 보았습니다

그리고 이것이 바로 그 코드입니다 난 단지 convolution 레이어가 있고, 풀링이 뒤 따른다 또 하나의 회선 (convolution), 풀링 (pooling) 또 다른 회선 (convolution), 풀링 (pooling) et cetera, et cetera 그래서 그것의 영향 – 그리고 기억하십시오, 우선, 맨 위에는 입력 모양이 있습니다

나는 맨 아래에 내 결과가있다 여기서 Dense는 3입니다 이제 데모로 다시 전환하겠습니다 지금 훈련이 끝났는지 알기 위해 그리고 우리는 그것을 볼 수 있습니다

그래서 우리는 33 %의 정확도로 시작했습니다 그러나 우리가 신 (新) 시대를 거치면서 – 나는 방금이 일을했다 나는 15 개 시대에 대해 – 그것은 꾸준히, 그리고 꾸준히, 그리고 꾸준히 더 정확 해졌습니다 따라서 이것을 수행하는 15 개의 루프 이후에는 9683 % 정확합니다

결과적으로, 우리는 이러한 기술을 사용하여, 이처럼 회선을 사용하면 실제로 몇 분 안에 무언가를 훈련 할 수있었습니다 바위, 종이 등을 탐지 할 때 대략 97 % 정확해야합니다 그리고 가위 여기에 간단한 그림 만 찍으면 이걸 볼 수 있습니다 정확성을 나타내는 빨간색 선입니다

우리는 약 33 %에서 시작했습니다 그리고 우리는 100 %에 가까워지고 있습니다 파란색 선은 별도의 데이터가 있습니다 내가 테스트 한 바위, 종이, 가위 세트 그것이 얼마나 잘하고 있는지보기 위해서입니다 그리고 그것은 꽤 가깝습니다

나는 그것을 조정하는데 약간의 일을해야한다 그리고 나는 실제로 당신을 보여주기위한 모범을 보일 수 있습니다 그래서 파일을 업로드 할 것입니다 내 컴퓨터에서 파일을 선택하겠습니다 나는 그 파일이라는 이름을 멋지게 지었다

그래서 당신은 그것이 종이라고 생각할 수 있습니다 그리고 내가 그것을 열고 업로드하면, 그걸 업로드 할거야 그리고 나서 그것은 저에게 결과를 줄 것입니다 출력은 1, 0, 0입니다 그래서 당신은 생각합니다, 아, 잘못 됐습니다

그것은 바위라고 감지했습니다 그러나 실제로, 여기에있는 뉴런들은 라벨에 기반하여, 알파벳순입니다 그래서 알파벳 순서는 종이, 바위, 가위 그래서 그것은 사실 저에게 1을 주어 올바르게 분류했습니다 그래서 실제로 종이입니다

그리고 우리는 무작위로 다른 것을 시도 할 수 있습니다 내 컴퓨터에서 파일을 선택하겠습니다 나는 가위를 선택하고 그것을 열고 실행합니다 그리고 다시, 종이, 바위, 가위, 그래서 우리는 실제로 그것이 올바르게 분류 된 것을 봅니다 이 통합 문서는 온라인 상태입니다

그것을 다운로드하고 그것으로 놀이를 가지고 싶다 너 자신을 분류하고보고 싶다 신경 네트워크를 훈련하는 것이 얼마나 쉬운가요? 그리고 일단 당신이 그 모델을 가지고 있다면, 당신은 당신의 애플리케이션에서 그 모델을 구현할 수있다 그런 다음 응용 프로그램에서 바위, 종이, 가위를 연주 할 수 있습니다 슬라이드로 다시 전환 할 수 있을까요? 그래서 단지 컨볼루션이 실제로 어떻게 이미지로 당신을 도우면, 이것이 그 모델입니다

내가 정의했을 때처럼 보인다 그리고 여기의 맨 위에는 약간의 버그처럼 보일 것입니다 처음에, 당신이 이것을하는 데 익숙하지 않다면 그러나 여기의 최상위에 우리 이미지가 다가오고 있다고 기억하십시오 150 x 150 – 실제로 말하는거야, 이봐, 나는 밖으로 나갈거야 이미지는 148 x 148입니다 왜 그런지 알아? 그게 버그 야? 아니, 버그가 아니야

승인 내 필터가 3 x 3, 픽셀을 볼 수있게하려면, 나는 던져야 만합니다 나를 이미지에서 시작하려면 하나의 픽셀을 시작하고 하나의 픽셀을 아래로 시작하려면 이웃을 가지고있다 결과적으로 모든 픽셀을 버려야합니다 상단, 하단, 그리고 내 이미지의 양쪽에

그래서 모든면에서 하나의 픽셀을 잃어 버리고 있습니다 따라서 150×150은 148×148이됩니다 그리고 그걸 쌓을 때 각 축을 반으로 줄였습니다 그래서 그것은 74 x 74가됩니다 그런 다음 다음 반복을 통해 36 x 36이되고, 17 x 17, 그리고 7 x 7

그래서이 150 제곱 이미지들 모두에 대해 생각해 보면 이러한 모든 회선을 통과 함 작은 7 x 7 가지가 많이 생겨났습니다 그리고 그 작은 7 x 7 것들은 지형지 물을 강조하고있다 그것은 손톱일지도 모릅니다 엄지 손가락 일 수 있습니다 손 모양 일 수 있습니다

그리고 나서 그 회선을 통해 오는 그 특징들 그런 다음 신경망으로 전달됩니다 이전에이 매개 변수를 생성하는 방법을 살펴 보았습니다 그리고 그 매개 변수들로부터 희망적으로, 그것은 추측을하고, 정말로 정확한 추측을 할 것입니다 바위, 종이 또는 가위에 관한 것 따라서 Collab을 사용하는 대신 IDE를 선호하는 경우, 당신도 그렇게 할 수 있습니다 내 개발에 PyCharm을 사용하는 것이 좋습니다

여기 PyCharm 팬들, 관심 없어? 그래, 좋았어 많은 당신 여기 PyCharm의 스크린 샷이 있습니다 내가이 바위, 종이, 가위를 쓰기 전에 그것을 Collab에서 붙여서 Collab에서 실행할 수 있습니다 따라서 PyCharm은 정말 훌륭합니다

단계별 디버깅과 같은 작업을 수행 할 수 있습니다 우리가 잠시 데모 기계로 전환 할 수 있다면 이제 PyCharm에 대한 간단한 데모를하겠습니다 단계별 디버깅을 수행합니다 그래서 여기에서 우리는 바위, 종이, 가위를 볼 수 있습니다

그리고 예를 들어, 내가 디버그를 치면, 나는 심지어 중단 점을 설정할 수있다 이제 코드에 중단 점이 있습니다 그래서 나는 무슨 일이 일어나고 있는지 살펴볼 수있다 내 신경 네트워크 코드에서 여기, 여기에 데이터를 미리로드합니다

그리고 나는 단계를 밟을 수 있고, 나는 할 수있다 정말 많이 만들 디버깅을해라 내 신경망이 잘 작동하는지 확인하십시오 나는 그것을 원한다 내가 듣는 것 중 하나이다

처음 개발자 일 때 많은 것을 기계 학습 시작하기 너의 모델 인 것 같다 대단히 블랙 박스입니다 모델을 훈련시키기위한 모든 파이썬 코드를 가지고 있습니다 그런 다음 대략적인 추측을해야합니다 TensorFlow가 오픈 소싱 (open-sourced) 실제로 TensorFlow 코드로 들어갈 수 있습니다

PyCharm에서, 내가 여기서하고있는 것처럼, 볼 수 있습니다 내 모델을 디버깅하는 데 도움이되는 교육 방법 그리고 Karmel은 나중에 TensorBoard라는 것이 어떻게 될 수 있습니까? 모델 디버깅에 사용됩니다 슬라이드로 다시 전환 할 수 있을까요? 그래서 염두에두고, 우리는 정말로 처음부터 끝까지갔습니다 신경망이 모두 무엇인지 이해하기 about and basic "안녕, 세상!" 암호 우리가 뭔가를 사용할 수있는 방법을 살펴 보는 것까지 회선 그리고 그들은 정말 복잡하게 들리는 무언가입니다

정말 어렵습니다 그러나 일단 당신이 그들을 사용하기 시작하면, 실제로 사용하기 쉽고 매우 쉽습니다 특히 이미지 및 텍스트 분류에 사용됩니다 그리고 우리는 몇 분 만에, 우리는 신경 네트워크를 훈련시킬 수있었습니다 97 %, 98 %로 바위, 종이 및 가위를 인식 할 수 있습니다

정확성 이제 막 시작되었습니다 그러나 실제로 프레임 워크를 실제로 늘리는 방법을 보여주기 위해, 그것을 현실로 만들고, 정말로 시원하고 생산 품질의 물건, 카르멜은 우리와 함께 할 것입니다 고맙습니다 [박수 갈채] 카멜 앨리슨 : 안녕

그래서 손의 빠른 쇼, 당신 중의 몇 명 그건 완전히 새로운 것이었고, 이제 당신은 물 위에서 머리를 지킬 수있는 최대한 빨리 노를 젓는가? 알았어, 네가 적임자 야 이제 도구 및 기능 중 일부를 살펴 보겠습니다 TensorFlow는 당신이 실제로 생산을 통해 모델을 완성했습니다 걱정하지 마세요, 마지막에는 시험이 없습니다 그래서 지금 당장 지키려고 노력하는 당신들에게는, 이 단어들을 추적하고, 어딘가에 저장한다

머리 뒤쪽에서이 모든 걸 사용할 수 있습니다 나머지는 이미 모델이있는 곳입니다 그리고 당신은 당신이 그것으로 할 수있는 것을 더 찾고 있습니다 지금주의하십시오 괜찮아

그래서 Laurence는 이미지 분류 문제를 겪었습니다 슬라이드에서 우리는 이미지 분류 문제를 좋아합니다 슬라이드에서 멋지게 보이기 때문입니다 하지만 데이터가 이미지 분류 문제가 아닐 수도 있습니다 범주 형 데이터 또는 텍스트 기반 데이터가 있다면 어떻게 될까요? TensorFlow는 여러 가지 도구를 제공합니다

다른 데이터 유형을 사용할 수있는 로드하기 전에 변환하십시오 기계 학습 모델로 특히, 예를 들어 여기에, 아마도 우리는 사용자 클릭 스트림이 있습니다 우리에게는 사용자 ID가 있습니다 이제, 우리가 직접 깊은 학습 모델에 그것을 공급한다면, 우리 모델은 그것이 실제 가치가 있고 수치라고 기대할 것입니다 그리고 사용자 번호 125와 어떤 관계가 있다고 생각할 수도 있습니다

실제로 비록 그것이 사실이 아닐지라도 사용자 126에게 그래서 우리는 이와 같은 데이터를 취할 수 있어야합니다 모델을 이해할 수있는 데이터로 변환하십시오 그럼 우리가 어떻게해야합니까? 음, TensorFlow에서 도구 중 하나 Google에서 광범위하게 사용하는 기능은 기능 항목입니다 이것은 다음을 허용하는 구성입니다 들어오는 데이터에 대한 변환을 구성 할 수 있습니다

여기에서 우리는 우리가 범주 형 칼럼을 사용하고 있음을 볼 수 있습니다 사용자 ID, 그리고 우리가 말하는거야, 이봐,이 우리가 데이터를 전달할 때 범주 형 칼럼입니다 모델이이를 범주 형 컬럼으로 사용하는 것을 원하지 않습니다 우리는 이것을이 경우에는 임베딩으로 바꾸고 싶습니다 권리? 그래서 당신은 하나의 뜨거운 표현을 할 수 있습니다

여기에서는 실제로 가져 오는 삽입 작업을 수행합니다 우리 모델을 훈련하면서 배웠습니다 이 퍼가기 및 다른 열은 다음과 같이 얻을 수 있습니다 Keras 레이어에 직접 공급됩니다 여기에 Dense Features 레이어가 있습니다

그 모든 변화를 가져올 것입니다 우리가 데이터를 통과 할 때 그들을 실행합니다 그리고 이것은 Keras 모델로 바로 다운 스트림으로 공급됩니다 그래서 우리가 입력 데이터를 통과 할 때, 변환은 우리가 실제로 데이터로부터 학습을 시작하십시오 그리고 그것은 우리 모델이 우리가 배우고 자하는 것을 배우고, 실수 값 데이터

그리고 그 레이어로 무엇을합니까? 일단 당신이 당신의 모델에 그것을 가지고있어? Keras에서는 꽤 많은 레이어를 제공합니다 Laurence는 길쌈 층을 통해 당신에게 말했습니다, 풀링 레이어 그것들은 이미지 모델에서 인기있는 것들입니다 하지만 우리는 수많은 레이어를 가지고 있습니다 니가 필요로하는 것에 따라 – 이렇게 많은 스크린 샷을 여기에 넣을 수는 없습니다

그러나 RNNs, drop-out layers, 일괄 표준, 모든 종류의 샘플링 레이어 따라서 어떤 아키텍처 유형이든 당신이 무언가를 만들고 있는지, 당신이 만들고 있어요 자신 만의 작은 유스 케이스와 이미지 분류 모델을 위해, 그것이 무엇이든, 최신의 가장 위대한 연구 모델, 수많은 내장 레이어가 있습니다 그게 당신을 훨씬 쉽게 만들어 줄 것입니다 실제로 사용자 정의 사례가있는 경우 하나의 레이어에 표현, 아마도 사용자 정의 알고리즘이나 사용자 정의가 있습니다

기능, Keras의 아름다움 중 하나 계층을 쉽게 하위 클래스로 만들 수 있다는 것입니다 자신 만의 기능을 구축 할 수 있습니다 여기에는 푸앵카레 정규화 레이어가 있습니다 이것은 푸앵카레 내장을 나타냅니다 이것은 TensorFlow와 함께 즉시 제공되는 것은 아니며, 커뮤니티 회원이이 레이어에 기여했습니다

TensorFlow 추가 기능 저장소, 여기서 우리는 여러 가지 맞춤식 특수 유스 케이스 레이어를 제공합니다 푸앵카레 정규화가 필요하다면 둘 다 유용합니다 또한 커스텀을 작성하는 방법에 대한 아주 좋은 예입니다 레이어를 사용하여 모든 요구 사항을 처리하고, 우리가 너를 위해 그것의 out-of-the-box를 가지고 있지 않다면 여기에서는 호출 메소드를 작성합니다

이 층의 순방향 패스 따라서 TensorFlow 부가 기능 저장소를 확인할 수 있습니다 이와 같은 레이어의 예를 보려면 실제로, Keras의 모든 것을 서브 클래 싱 할 수 있습니다 또는 거의 모든 것 통계, 손실, 최적화 도구가 있습니다

즉시 사용 가능하지 않은 기능이 필요하다면, 우리는 당신이 Keras가 무엇인지를 쉽게 파악할 수 있도록 노력합니다 이미 제공하는 동시에 전체 Keras 및 TensorFlow 생태계 여기서는 모델을 서브 클래 싱하는 중입니다 내 모델에서 맞춤 전달 전달이 필요한 경우, 호출 메소드에서 쉽게 할 수 있습니다 내 맞춤 모델 내에서 맞춤 교육 루프를 정의 할 수 있습니다

이것은 쉽게 할 수 있습니다 -이 경우, 사소한 일, 매직 넘버로 곱하면됩니다 하지만 많은 모델에서 표준 적합과 다른 것을 할 필요가있다 루프,이 방법으로 사용자 정의 할 수 있습니다 모든 툴링을 여전히 활용합니다 Keras를 제공합니다

따라서 맞춤형 모델의 문제점 중 하나 더 복잡한 모델은 네가 실제로 있는지 알기가 어렵다 네가하고 있다고 생각하는 것을하는거야 그리고 당신의 모델이 훈련인지 여부 Keras 및 TensorFlow에 제공하는 도구 중 하나 더 광범위하게 TensorBoard입니다 이것은 시각화 도구입니다

웹 기반이며 서버를 실행합니다 모델 기차로 데이터를 가져 오는 그래서 당신은 실시간으로, 신기원에 의해 에포크로, 모델이 어떻게 진행되고 있는지, 단계별로 단계별로 설명하십시오 여기에서 모델 열차의 정확성과 손실을 확인할 수 있습니다 수렴합니다 그리고이를 통해 훈련 할 때 모델을 추적 할 수 있습니다

실제로 진행하고 있는지 확인하십시오 컨버전스쪽으로 Keras를 사용할 때 다음과 같이 할 수도 있습니다 사용했던 레이어의 전체 그래프를 볼 수 있습니다 당신은 그것들을 파고 실제로 op-level 그래프를 얻을 수 있습니다

TensorFlow 그리고 이것은 디버깅에 정말로 도움이됩니다 모델에 올바르게 연결했는지 확인하십시오 너는 실제로 건물과 훈련을하고있다 당신이 생각하는 훈련

Keras에서는 이것을 추가하는 방법이 있습니다 몇 줄의 코드처럼 쉽습니다 여기에 우리가 정의한 TensorBoard 콜백이 있습니다 우리는 훈련 중에 그것을 모델에 추가합니다 로그에 기록합니다

디스크에 여러 메트릭 그런 다음 TensorBoard 웹 GUI에 의해 읽혀집니다 추가 보너스로 기본 성능을 얻습니다 그것으로 프로파일 링합니다 그래서 TensorBoard의 탭 중 하나 너의 모든 작전이 어디 있는지 보여 줄거야 성능 병목 현상이있는 위치에 배치됩니다

이것은 당신이 시작할 때 매우 유용합니다 더 크고 더 많은 모델을 만들려면 훈련 중 그 성능을 볼 것입니다 프로세스의 병목 현상 중 하나가 될 수 있습니다 그리고 당신은 정말로 그것을 더 빨리 만들고 싶습니다 공연에 대해 말하면, 이것은 음모입니다 가장 인기있는 기계 중 하나 인 ResNet-50의 소요 시간 이미지 분류를위한 학습 모델, 하나의 GPU를 사용하여 훈련하십시오

하나의 CPU로 얼마나 오래 걸릴지 묻지 마라 아무도 거기 앉아서 기다리지 않기 때문에 그것이 끝날 때까지 그러나 당신은 그것이 더 나은 것을 볼 수 있습니다 하나의 GPU로 일주일 중 일부 깊은 학습의 아름다움 중 하나 그것은 매우 쉽게 병렬화 될 수 있다는 것입니다

TensorFlow로 제공하고자하는 것 이 교육 파이프 라인을 가져 와서 병렬 처리하는 방법입니다 TensorFlow 20에서 우리가하는 방식은 일련의 배포 전략을 제공합니다 이것들은 당신이 취하기가 매우 쉽습니다 기존 모델 코드

여기에 Keras 모델이 있습니다 네가 한 다른 많은 것 같아 이 이야기를 통해 보았습니다 그리고 우리는 그것을 여러 GPU를 통해 배포 할 것입니다 여기에 미러링 된 전략을 추가합니다

이 몇 줄의 코드를 사용하면 이제 여러 GPU에 우리 모델을 배포 할 수있게되었습니다 이 전략은 처음부터 다시 설계되었습니다 다양한 용도로 사용하기 쉽고 다양한 규모로 확장 가능 아키텍처를 제공하고 훌륭한 아웃 오브 더 박스를 제공합니다 공연 그래서 이것이 실제로하고있는 일입니다

여기에서는 코드 몇 줄로, 전략 범위에서 모델을 구축함으로써 우리가 한 일 우리가 모델을 찍었는데 우리의 다른 장치들 이 그림에서는 4 개의 GPU가 있다고 가정 해 봅시다 우리는이 GPU를 통해 우리 모델을 복사합니다 우리는 입력 데이터를 파기합니다 그건 네가 실제로 가고 있다는 뜻이야

입력을 병렬로 처리하는 것 각기 다른 기기에서 사용할 수 있습니다 그런 식으로 확장 할 수 있습니다 번호와 대략 선형으로 모형 훈련 당신이 가지고있는 장치들 따라서 4 개의 GPU를 가지고 있다면 약 4 개의 GPU를 실행할 수 있습니다 배 빠른

결국 ResNet에서와 같이 보이게됩니다 우리는 큰 스케일링을 얻을 수 있음을 알 수 있습니다 그리고 바로 사용할 수있는 제품입니다 변수가 모두 미러링되고 전체에 걸쳐 동기화됩니다 사용 가능한 장치

일괄 처리가 선취되고 있습니다 이 모든 것들이 당신의 모델을 훨씬 더 많이 만들어줍니다 교육 시간 중 공연자, ​​코드를 변경하지 않고 모두 Keras를 사용할 때 괜찮아 멀티 GPU를 이용한 미러링 된 전략은 시작에 불과합니다

모델을 확장 할 때 Google에서와 마찬가지로 예를 들어, 여러 개의 노드와 여러 개의 서버를 사용하고, 각각은 고유 한 GPU 세트를 가지고 있습니다 다중 작업자 미러 전략을 사용할 수 있습니다 그것은 당신의 모델을 취할 것입니다, 여러 머신에 걸쳐 복제하고, 모두 동 기적으로 작업하여 모델을 교육하고, 모든 변수를 미러링합니다 따라서 이전보다 빠르게 모델을 학습 할 수 있습니다 그리고이 API는 아직 실험적입니다

우리가 개발하는 동안 그러나 TensorFlow 20에서는이 기능을 즉시 사용할 수 있습니다 대규모 클러스터에서 뛰어난 성능을 발휘할 수 있습니다 괜찮아

그래서 내가 지금까지 말했던 모든 것 훈련 모델의 제목 아래에있다 그리고 많은 모델 제작자들이 트레이닝 부분 만 생각하면됩니다 하지만 기계 학습 모델이 있다면 당신이 생산에 들어 가려고하는 것, 당신은 그것이 단지 절반의 이야기라는 것을 압니다 다른 절반이 있습니다 음, 내가 배운 것과 실제로 봉사 한 것을 어떻게 가져 가야합니까? 고객 또는 최종 사용자가 누구든간에 그렇습니까? TensorFlow에서 우리가하는 방식은 당신이 모델을 저장된 모델로 직렬화해야 할 것입니다

이 저장된 모델은 모델의 직렬화 된 형식이됩니다 그런 다음 나머지 TensorFlow와 통합됩니다 생태계 따라서 해당 모델을 프로덕션에 배포 할 수 있습니다 예를 들어, 우리는 많은 다른 라이브러리를 가지고 있습니다

이 저장된 모델을 사용할 수있는 유틸리티 등이 있습니다 TensorFlow 검색의 경우 그 모델을 가지고 할 수 있어야한다 웹 기반 서비스 요청 Google에서 Google의 가장 큰 규모의 제품을 사용하고 있습니다 시스템

TensorFlow Lite는 모바일 개발 용입니다 TensorFlowjs는 웹 기반 솔루션입니다 귀하의 모델을 제공합니다 나는 갈 시간이 없다

다음 몇 분 안에이 모든 것들이 TensorFlow Serving 및 TensorFlow Lite에 대해 이야기하겠습니다 조금 더 그러나 우선, 실제로 저장된 모델을 어떻게 얻습니까? 다시 TensorFlow 20에서 이것은 쉽게 될 것입니다 Keras 모델을 사용하려는 곳에서 바로 사용할 수 있습니다

save라고 부르면됩니다 그리고 이것은 TensorFlow 저장된 모델을 작성하려고합니다 체재 이것은 모델의 일련 화 된 버전입니다

여기에는 전체 그래프와 모든 변수, 그리고 무게, 그리고 당신이 배운 모든 것들, 그리고 그것을 디스크에 씁니다 그래서 그것을 가져갈 수 있습니다 그것을 다른 누군가에게 넘겨 주자 다시 파이썬으로로드 할 수 있습니다 여러분은 파이썬 객체 상태를 모두 되 찾을 것입니다

여기에서 볼 수 있듯이 그리고 계속 훈련을하고 계속 사용할 수 있습니다 당신은 그것을 기반으로 미세 조정할 수 있습니다 또는 그 모델을 TF 서빙으로로드 할 수 있습니다 따라서 TensorFlow Serving은 gRPC 또는 REST 요청에 응답합니다 요청을받는 프런트 엔드 역할을하지만, 추측을 위해 모델로 보냅니다

결과를 다시 얻을 것입니다 그래서 우리가 우리의 바위, 종이, 가위 게임, 당신은 사진을 찍을 수, 그것을 당신의 서버에 보내십시오 서버가 모델에 물어볼 것입니다 이봐,이게 뭐야? 모델이 발견 한 것을 바탕으로 답을 다시 보냅니다 그런 식으로, 당신은 그 완전한 왕복을 얻습니다

TensorFlow Serving은 우리가 내부적으로 사용하는 것입니다 가장 큰 기계 학습 모델의 경우 따라서 낮은 대기 시간과 높은 대기 시간을 갖도록 최적화되었습니다 처리량 TensorFloworg에서 확인할 수 있습니다

전체 생산 파이프 라이닝 제품군이 있습니다 우리가 호출하는 처리 구성 요소 TensorFlow Extended 또는 TFX TensorFloworg에서 자세한 내용을 확인할 수 있습니다 그 편리한 Dandy QR 코드를 바로 사용하십시오

그리고 아마도 모델을 가지고 있고 웹 앱을 가지고있을 것입니다 하지만 정말로, 전화로 원 하죠? 미래는 모바일이기 때문에 당신은 어디서나 이것을 가져갈 수 있기를 원합니다 그래서 TensorFlow Lite는 도서관입니다 저장된 모델을 저장 공간으로 작은, 작은 발자국

따라서 휴대 기기에 적합합니다 임베디드 장치에 적합 할 수 있습니다 나무 딸기 Pis, 가장자리 TPUs 이제이 모델을 다양한 장치에서 실행합니다 당신이하는 방법은 당신이 똑같은 구원받은 모델을 가져가는 것입니다

원래 작성한 것과 같은 모델 코드에서 TF Lite 변환기를 사용하면 축소됩니다 그 모델의 발자국 그런 다음 장치에 직접로드 할 수 있습니다 그리고 이것은 인터넷을 사용하지 않고 온 – 장치로 실행할 수있게 해줍니다

백그라운드에서 서버없이 귀하의 모델은입니다 TensorFlow를 가져 가면됩니다 어디에서나 당신이되고 싶습니다 이제, 우리는 정말로 빨리 달렸습니다 일부 기계 학습의 기초에서, 첫 번째 모델 제작 TensorFlow가 제공하는 몇 가지 도구를 통해 이를 취하여이를 프로덕션에 배치하는 기능을 제공합니다

지금 무엇을합니까? 음, 훨씬 더 많은 것이 있습니다 googledev로 이동할 수 있습니다 TensorFloworg에 갈 수 있습니다

우리는 많은 수의 튜토리얼을 가지고 있습니다 GitHub에 갈 수 있습니다 이것은 모두 오픈 소스입니다 다른 도서관을 보거나, 질문을하거나, 홍보를 보내십시오 우리는 홍보를 좋아합니다

그리고 그 말을 듣고 싶습니다 감사합니다 LAURENCE MORONEY : 고마워요 카렌 멜리슨 : 로렌스, 퇴장 [박수 갈채] [음악 재생]

Cloud TPU Pods: AI Supercomputing for Large Machine Learning Problems (Google I/O'19)

[음악 재생] 마틴 고너 : 안녕하세요 모두와 주셔서 감사합니다

아침 8시 30 분에이 세션에 오신 것을 환영합니다 TPUs 및 TPU 포드에 대해 따라서 맞춤 제작 된 가속기입니다 Google이 기계 학습을 가속화하도록 설계 한 워크로드 그리고 내가 그들에 관해 모든 것을 말해주기 전에, 나와 카즈, 나는 뭔가하고 싶다 물론 이것은 라이브이기 때문에 라이브 데모를보고 싶습니다

그리고 무대 위에 서서 여기서 훈련하고 싶습니다 그 큰 모델 중 하나 인 TPU 포드 옛날에 기차를 타고 가곤 했었어 그리고 우리가 훈련을 끝낼 수 있는지 알게 될 것입니다 이 세션에서 그래서 훈련을 시작하겠습니다 나는 여기서 내가하고있는 것을 정확히 설명 할 것이다

나는 지금 막 시작하고있다 모든 셀을 실행하십시오 달리고있는 것 같습니다 좋아, 그냥 확인 중이 야 128 코어 TPU 포드에서 실행하고 있습니다

그래서 로그에서 볼 수있는 것들 중 하나가 여기에 있습니다 모든 TPUs가 나타나기 때문입니다 0, 1, 2, 6 및 128까지 줄입니다 좋아, 그럼 이거 달리기 야 나는 그것에 만족한다

TPUs에 대해 더 많이 들어 봅시다 우선 실리콘 조각은 무엇입니까? 그리고 이것은 내가 시작한 데모입니다 그것은 객체 감지 데모입니다 300,000 이미지의 야생 동물 데이터 세트에 대한 교육입니다 왜 야생 동물인가? 너에게 귀여운 팬더를 보여줄 수 있기 때문에

그리고 귀여운 전자 제품을 보여줄 수 있습니다 그래서 이것은 TPU v2입니다 그리고 두 번째 버전 인 TPU v3가 있습니다 그것들은 꽤 큰 보드입니다 이것은 거대합니다

보시다시피, 칩 위에 4 개의 칩이 있습니다 각 칩은 듀얼 코어이므로 이러한 보드 각각 그것들에 8 개의 TPU 코어가 있습니다 각 코어에는 두 개의 유닛이 있습니다 그것은 벡터 처리 단위입니다 이것은 상당히 표준적인 데이터 지향적 인 프로세서이며, 범용 프로세서

기계 학습을 위해 특별하게 만드는 이유 행렬 곱셈 단위입니다 TPU에는 하드웨어 기반 매트릭스가 내장되어 있습니다 한 번에 128 x 128 행렬에 곱할 수있는 승수 그렇다면이 아키텍처에 대한 특별한 점은 무엇입니까? 우리가 사용한 두 가지 트릭이 있습니다 신속하고 효율적으로 만들 수 있습니다

첫 번째는 준 표준이라고 할 수 있습니다 정밀도가 떨어졌습니다 신경망을 훈련 할 때 정밀도가 떨어집니다 32 비트 부동 소수점에서 16 비트로 사람들이 아주 자주하는 일입니다 신경 네트워크가 손실에 상당히 저항하기 때문에 정밀도

실제로, 심지어 때로는 발생합니다 감소 된 정밀도로 인해 발생하는 잡음 일종의 정규화 자 역할을하며 융합을 돕습니다 때로는 정확도를 떨어 뜨릴 때 운이 좋은 경우도 있습니다 그러나이 차트에서 볼 수 있듯이 float16과 float32, 부동 소수점 형식, 그들은 같은 번호가 없습니다 지수 비트의 동일한 범위를 커버하지 마십시오 따라서 모델을 가져와 모든 float32를 다운 그레이드 할 때 float16s에, 당신은 언더 플로우 또는 오버플로에 들어갈 수도 있습니다 문제

그리고 그것이 당신의 모델이라면, 그것은 보통 없습니다 들어가서 고치기가 너무 힘듭니다 하지만 GitHub의 코드를 사용하고 있다면 너는 물건을 고칠 곳을 모른다 이것은 매우 문제가 될 수 있습니다 그래서 TPUs에서 우리는 다른 것을 선택했습니다

실제로 우리는 다른 부동 소수점을 설계했습니다 형식은 bfloat16입니다 보시다시피, 실제로는 분수 비트 만있는 float32와 정확히 동일합니다 끊다 그래서 요점은 정확히 같은 숫자입니다

지수 비트의 정확히 같은 범위 따라서 일반적으로 드롭 인 대체품입니다 float32 및 정밀도 감소 그래서 보통 당신을 위해, 아무것도 없습니다 당신의 모델에서 감소 속도의 혜택을 누리기 위해해야 ​​할 일 정도

TPU는 자동으로, 선박에서, 하드웨어에서 두 번째 요령은 건축입니다 이 행렬 곱셈 단위의 설계입니다 어떻게 작동하는지 이해하면 머리 속에서 행렬을 수행하는 방법을 그림으로 그려보십시오 곱셈

결과 하나, 결과 하나 매트릭스, 학교에서 미적분을 기억하려고, 점 제품입니다 한 행의 한 행과 한 행의 내적 제 2 매트릭스의 이제 내적 제품이란 무엇입니까? 내적은 일련의 곱셈 – 누산 연산이며, 이 말은 당신 만이 행렬 곱셈을 수행 할 필요가있다 곱셈되고 누적된다 그리고 16 비트로 곱셈 – 누산하고, 왜냐하면 우리는 bfloat16을 사용하여 정밀도를 줄 였기 때문입니다 그것은 작고 작은 실리콘 조각입니다

16 비트 곱셈 누적 기는 아주 작은 실리콘 조각입니다 그리고 당신이 여기에있는 것처럼 어레이로 함께 묶는다면 따라서 실생활에서 이것은 128 x 128 배열 일 것입니다 그것은 수축기 배열이라고 불립니다 수축기는 그리스어로 흐름을 의미합니다

데이터를 통해 데이터를 전달하기 때문입니다 그래서 작동하는 방식은 하나의 행렬을 배열에로드하는 것입니다 그런 다음 배열을 통해 두 번째 행렬을 흐르게합니다 그리고 날 믿어야 해, 아니면 애니메이션 작업에 약간의 시간을 할애하고, 회색 점이 끝날 때까지 그 곱셈 – 누산기를 통해 흐르는, 오른쪽의 모든 점 제품은 결과 행렬을 만듭니다 그래서 이것은 원 샷 조작입니다

어디에도 저장할 수있는 중간 값이 없으며 메모리, 레지스터에 모든 중간 값이 와이어에 흐른다 하나의 계산 단위에서 두 번째 계산 단위로 매우 효율적입니다 그리고 무엇보다, 그것은 단지 만들어졌습니다

그 작은 16 비트 곱셈 누적 기, 이는 우리가 많은 것을 하나의 칩에 넣을 수 있음을 의미합니다 128 x 128은 16,000 개의 다중 누산기입니다 그리고 그것이 하나의 TPU 코어에 얼마나 많이 들어가는 지, 두 배입니다 2 개의 TPU 코어 이것이 이것이 밀도를 높여주는 이유입니다

밀도는 전력 효율성을 의미합니다 또한 데이터 센터의 전력 효율성은 비용을 의미합니다 그리고 물론, 당신은 얼마나 싸구려인지 알고 싶습니다 또는 이러한 것들이 얼마나 빠릅니다 작년부터 기억할 수도있는 사람들이 있습니다

나는 내가 만든 것을 말하며,이 평면 모델, 그래서 저는 이것을 오늘 벤치 마크로 사용하고 있습니다 Google Cloud의 AI 플랫폼에서 다른 구성을 얻는 것은 매우 쉽습니다 그래서 나는이 기차가 얼마나 빨리 테스트 할 수 있습니다 저의 기준은 빠른 GPU에서이 모델입니다 4 시간 반 만에 열차를 탄다

하지만 강력한 GPU를 갖춘 5 대의 컴퓨터를 사용할 수도 있습니다 클러스터에서 그리고 5 대의 머신에서 5 개의 GPU, 이 모델은 한 시간 안에 훈련 할 것입니다 그리고 1 시간이 정확히 있기 때문에이 번호를 선택했습니다 이 모델이 하나의 TPU v2에서 훈련하는 데 걸리는 시간

엄지 손가락의 규칙 때문에 기억하고 싶습니다 4 개의 칩을 가진 대략 1 TPU v2이고, 대략 5 개의 강력한 GPU와 비슷합니다 그것은 속도 측면에서입니다 그러나 보시다시피, 거의 3 배 저렴합니다 이것이 아키텍처 최적화의 요점입니다

특히 신경망 작업 부하에 적합합니다 이 기능이 소프트웨어에서 어떻게 작동하는지 알고 싶을 수도 있습니다 따라서 TensorFlow에서 TensorFlow 또는 Keras를 사용하는 경우, 귀하의 파이썬 코드 TensorFlow 파이썬 코드 전산 그래프를 생성합니다 그것이 TensorFlow가 작동하는 방법입니다 따라서 전체 신경망은 그래프로 표현됩니다

이제,이 그래프가 TPU로 전송됩니다 TPU는 파이썬 코드를 실행하지 않습니다 이 그래프는 XLA, Accelerated Linear 대수학 컴파일러, 그게 어떻게 TPU에서 실행될 TPU 마이크로 코드가됩니다 그리고이 아키텍처의 한 가지 좋은 부작용 TensorFlow 코드에서, 표준 tfdata

DataSet을 통해 데이터를로드합니다 API, 필요한 경우, TPU와 함께 필요한 경우 심지어 데이터로드 부분 또는 이미지 크기 조정 또는 기타 데이터 파이프 라인에 있고, 그래프에서 끝나고, TPU에서 실행된다 TPU가 Google Cloud Storage에서 데이터를 가져옵니다 훈련 중 직접 그래서 매우 효율적입니다

실제로 이것을 코드로 어떻게 작성합니까? Keras에서 보여 드리죠 그리고주의해야 할 것은 TensorFlow 114의 Keras입니다 이 다음 날에 있어야합니다 API는 TensorFlow 1

13에서 약간 다릅니다 오늘은 오히려 너에게 그걸 보여줄거야 새로운 것, 내일 또는 다음 주 현재로 그래서 그것은 몇 줄의 코드 일뿐입니다 첫 번째 줄 TPUClusterResolver가 있습니다

대부분의 플랫폼에서는 매개 변수없이 호출 할 수 있습니다 연결된 TPU를 찾습니다 TPU는 원격으로 연결된 가속기입니다 이것은 그것을 찾습니다 TPU를 초기화 한 다음 새 배포판을 사용합니다

이 TPU를 기반으로 TPU 전략을 정의하는 TensorFlow의 API 그리고 전략으로 말하면됩니다 스코프, 뒤에 오는 모든 것은 완벽하게 정상적인 Keras 코드입니다 그런 다음 모델을 정의하고 컴파일하고, 당신은 modelfit, modelevaluate, model

predict, 네가 Keras에서하는 일은 뭐니? 그래서 Keras에서 이것은 문자 그대로이 네 줄의 코드입니다 추가하려면 – TPU에서 일하기 그리고이 4 줄의 코드 또한 모델을 분산 모델로 변환합니다 하나의 GPU조차도 TPU를 기억하십시오 8 개의 코어가있는 보드입니다

그래서 가서 분산 컴퓨팅입니다 그리고이 네 줄의 코드가 제자리에 놓였습니다 당신을위한 분산 컴퓨팅의 모든 기계류 통지 할 하나의 매개 변수 TPU 전략에서 볼 수 있습니다

steps_per_run은 100입니다 그래서 이것이 최적화입니다 이것은 TPU에게 알려주고 100 회분의 교육을 실행하십시오 끝날 때까지 다시보고하지 마세요 네트워크 연결 가속기이기 때문에, TPU가 다시보고하기를 원하지 않는다

성능상의 이유로 각 배치 후에 이것이 바로 소프트웨어입니다 자신의 코드를 작성하고 싶지 않으면, 나는 그렇게하도록 권합니다 하지만 그렇지 않으면 우리는 도서관 전체를 가지고 있습니다 TPU 최적화 모델의 그래서 TensorFlow / tpu GitHub에서 찾을 수 있습니다

저장소 이미지에 모든 것이 있습니다 비전 공간에서, 기계 번역에서, 언어 및 NLP 공간을 음성 인식에 사용합니다 GaN 모델로도 게임을 즐길 수 있습니다 우리가 무대에서 시연하고있는 것, 지금 RetinaNet이 모델을 훈련하고 있다는 것을 기억하십시오

그래서 이것은 하나의 물체 탐지 모델입니다 그리고 저는이 모델을 좋아해요 어떻게 작동하는지 물체 감지에서 이미지를 넣고 얻을 수있는 것 그냥 라벨이 아니야 여긴 개야,이 팬더 야

하지만 실제로 그 객체가있는 곳에 상자가 생깁니다 물체 감지 모델에는 두 가지 종류가 있습니다 원샷 감지기가 있습니다 일반적으로 빠르지 만 종류가 정확하지 않습니다 그 다음 훨씬 더 많은 2 단 검출기 정확하지만 훨씬 느립니다

그리고 나는 RetinaNet을 좋아합니다 왜냐하면 그들은 실제로 이것을 가장 빠른 방법으로 찾았다 그리고 당신이 할 수있는 가장 정확한 모델 오늘날의 물체 감지에서 찾아보십시오 그리고 그것은 매우 간단한 속임수입니다 나는 그 뒤에있는 모든 수학을 설명하지 않을거야

기본적으로 이러한 탐지 모델에서, 당신은 후보 탐지로 시작합니다 그리고 탐지를 찾아 내기 위해 잘라냅니다 상자 안에 실제 물건이 들어있는 상자 그리고 그 점은 당신이 보는 파란 상자들, 그들에게는 아무것도 없다 그래서 훈련 중에도 그들은 매우 쉽게 보이지 않는 것으로 분류되고 상자를 따라 이동하며, 아주 작은 오류

그러나 당신은 그들 중 많은 것을 가지고있다 이 모델의 손실을 계산할 때, 손실에서 아주 작은 오류가 아주 많습니다 그리고 그 엄청난 양의 아주 작은 오류들이 결국에는 매우 커야하며 유용한 신호를 압도합니다 그래서 2 단 검출기는 그 후보 상자에 대해 훨씬 더주의를 기울임으로써 1 단 검출기에서, 당신은 시작합니다 다수의 후보 상자가 있습니다

RetinaNet에서 발견 한 트릭 손실에 조금 수학 트릭입니다 모든 사람의 기여가 그 쉬운 상자는 작게 유지됩니다 결과는 빠르고 정확합니다 그래서 내가 다시 여기로 가게 해줘 나는 실제로 내가 한 일에 대해 정확히 말하고 싶다 정확히 말하면, 이 데모를 시작했을 때

저는 여러분 대부분이 Google Cloud Platform에 익숙하다고 생각합니다 그래서 여기에 Google Cloud Platform 콘솔이 열립니다 Google Cloud Platform에서는 나는 AI 플랫폼이라는 도구를 가지고 있는데, 그것을 아는 사람들에게는 훈련을위한 시설이 있습니다 작업을 수행하고 REST API 뒤에 모델을 배치하는 방법 봉사를 위해 하지만 노트북이라는 새로운 기능이 있습니다

AI 플랫폼에서 모든 설치 준비가 완료되었습니다 작업을위한 노트북 – 그래, 그럼 이걸로 바꾸자 TensorFlow, PyTorch에서는 GPU를 사용합니다 문자 그대로 클릭 한 번으로 작동합니다 새로운 인스턴스, TensorFlow 인스턴스가 필요합니다

Jupyter 노트북이 설치된 상태에서 얻은 정보 실행중인 인스턴스이지만 링크가있는 인스턴스입니다 Jupyter를여십시오 예를 들어, 이건 그리고 그것은 Jupyter를 열 것입니다, 하지만 이미 열려있어 그래서 다른 것을 선택하라고 요구하고 있지만, 여기 있습니다 그리고 여기서, 당신은 실제로 정상적으로 일할 수 있습니다 Jupyter 환경에서 강력한 가속기를 사용하십시오 내가 TPU를 가지고 있지 않다는 것을 눈치 챘을 것입니다

옵션, 실제로 여기에,하지만 여기, 가속기 추가 용 그게 다가올거야 하지만 여기에서는 Jupyter 노트북 인스턴스를 사용하고 있습니다 TPU v3 128 코어 포드에 의해 전원이 공급됩니다 나는 그것을 어떻게 했는가? 명령 행에서 실제로 가능합니다

여기에 명령 줄을 알려 줘 거기에 대해서는 아무 것도 없습니다 하나의 gcloud 계산 명령 행이 있습니다 인스턴스로 시작하고 두 번째 gcloud 계산 명령 라인을 눌러 TPU를 시작하십시오 가상 시스템처럼 TPU를 프로비저닝합니다

Google의 클라우드 이것이 내가 한 일입니다 바로 지금 실행중인 것입니다 그래서 우리가 무엇인지 보자 여기 아직 실행 중입니다 보시다시피 다음 100 배치를 대기열에 넣으십시오

그리고 그것은 훈련입니다 대략 6,000 명 중 4,000 명이 단계입니다 세션의 끝에서이 데모를 다시 확인하겠습니다 이 데모는 내가 그것을 할 때, 무대에서 그것을 실행하기 위해, 나는 또한 우리가 얼마나 빨리 TPU v3 대 v2s 이론적으로 v3는 v2보다 약 2 배 강력합니다

하지만 당신이 충분히 먹이면 효과가 있습니다 모든 하드웨어를 사용하도록 노력하십시오 레티 나 넷 (RetinaNet)에서는 훈련이 가능합니다 다양한 크기의 이미지에 물론, 작은 이미지를 훈련하면 256 픽셀 이미지, 그것은 훨씬 더 빠를 것이다

초당 이미지의 관점에서 그리고 나는 둘 다 시도했다 TPU v2s 및 v3s 당신은 작은 이미지를 볼 수 있습니다, 당신은 약간의 충돌을 얻을 성능은 TPU v3에서 나오지만, 거의 2 배가되지는 않습니다 그러나 당신이 더 크고 더 큰 심상에 도착할 때, 당신은 더 많은 일로 하드웨어를 먹이고 있습니다

640 픽셀 이미지에서 TPU v3의 속도를 높입니다 이론적 인 x2 인자에 가까워지고있다 이런 이유로이 데모를 여기서 실행하고 있습니다 TPU v3 포드의 512 픽셀 이미지 크기 나는 포드에 대해서 이야기하고있다

하지만 정확히이 포드는 무엇입니까? TPU 포드에 대해 자세히 알려면 Kaz에게 lectern를주고 싶다 Kaz 감사합니다 KAZ SATO : 고마워, 마틴 [박수 갈채] 따라서 필자는 클라우드 TPU 포드를 직접 소개합니다 꼬투리는 무엇입니까? 클라우드 TPU의 대규모 클러스터입니다

이제 버전 2 포드는 공개 베타 버전으로 제공됩니다 512 TPU 코어가있는 116 페타 플롭을 제공합니다 차세대 버전 3 포드 공개 베타 버전이기도합니다 2,048 TPU 코어가있는 100 페타 플롭스 이상 그 성능 수치는 가장 높은 수치입니다

슈퍼 컴퓨터 따라서 클라우드 TPU 포드는 AI 슈퍼 컴퓨터입니다 Google이 처음부터 만들었습니다 그러나 여러분 중 일부는 생각할 수도 있습니다 한 무리의 TPU 인스턴스와 클라우드 간의 차이점 TPU 포드? 차이점은 상호 연결입니다

Google은 초고속 상호 연결을 개발했습니다 슈퍼 컴퓨터 기술에서 파생 된 하드웨어, 매우 짧은 대기 시간으로 수천 개의 TPU를 연결합니다 그것은 당신을 위해 무엇을합니까? 애니메이션에서 볼 수 있듯이 업데이트 할 때마다 단일 TPU상의 단일 파라미터, 다른 모든 수천과 동기화됩니다 하드웨어에 의해 즉각적으로 TPUs의 즉, TensorFlow 사용자는 전체 포드를 사용할 수 있습니다

수천 대가있는 거대한 단일 기계 그 안에 TPU 코어의 단일 컴퓨터를 사용하는 것만 큼 쉽습니다 AI 슈퍼 컴퓨터이기 때문에 궁금해 할 것입니다 당신은 또한 최고 높은 비용을 취할 수 있습니다 그러나 그렇지 않습니다 TPU 창을 사용하여 시작할 수 있습니다

32 코어를 초기 비용없이 시간당 24 달러로 제공합니다 따라서 수백만 달러를 지불 할 필요가 없습니다 자신의 수퍼 컴퓨터를 처음부터 만들 수 있습니다 클라우드에서 몇 시간 동안 임대 할 수 있습니다 버전 3 포드는 32 코어로 프로비저닝 될 수 있습니다

시간당 32 달러에 불과합니다 크기가 더 큰 경우 서비스 담당자에게 문의하십시오 가격 책정 GPU를 통한 TPU 포드의 비용 이점은 무엇입니까? 여기에 비교 결과가 있습니다 가득 차있는 버전 2 포드로, 512 TPU 코어를 사용하면 동일한 ResNet-50 모델을 교육 할 수 있습니다 38 배 저렴한 비용으로 27 배 빠른 속도

이것은 TPU 포드의 명확한 이점을 보여줍니다 일반적인 GPU 기반 솔루션 TPU 포드에서 얻을 수있는 다른 이점도 있습니다 이베이의 경우를 살펴 보겠습니다 eBay에는 10 억 가지 이상의 제품 목록이 있습니다 특정 제품을 더 쉽게 검색 할 수 있도록 10 억 개 제품에서 새로운 시각적 검색 기능을 구축했습니다 특색

그리고 모델을 훈련시키기 위해, 그들은 5500 만 개의 이미지를 사용했습니다 그래서 그들에게는 정말 대규모 훈련입니다 그리고 그들은 Cloud TPU 포드와 eBay를 사용했습니다 100 배 빠른 교육 시간을 얻을 수 있었고, 기존 GPU 서비스에 비해 또한 10 %의 정확도 향상 효과도 얻을 수 있습니다 그게 왜? TPU 자체가 정확성을 높이기 위해 설계되지 않았습니다

그 정도 그러나 당신이 훈련 속도를 증가시킬 수 없기 때문에 10 배 또는 100 배, 즉 데이터를 의미합니다 과학자 또는 연구원은 100 배 더 많은 10 배를 가질 수 있습니다 시도 같은 반복을위한 반복 하이퍼 파라미터의 다른 조합 또는 다른 전처리 등등 따라서 eBay의 경우 정확도가 10 % 이상 향상되었습니다

어떤 종류의 TensorFlow 코드를 보자 당신은 TPU 포드로부터 그 이익을 얻기 위해 글을 쓸 것입니다 그리고 실제 코드를 살펴보기 전에, 나는 되돌아 보려고 노력한다 과거에 필요한 노력은 무엇 이었습니까? 대규모 분산 교육을 구현하려면? 단일 컴퓨터에 많은 GPU 또는 TPU 사용 즉, 소위 분산 형 교육이라고합니다 그리고 두 가지 방법이 있습니다

하나는 데이터 병렬이고 다른 하나는 모델 병렬입니다 우선 데이터 병렬에 대해 이야기 해 봅시다 다이어그램에서 볼 수 있듯이 데이터가 병렬 인 경우, 교육 데이터를 여러 GPU로 분할해야합니다 또는 TPU 노드 또한 모델과 동일한 매개 변수 세트를 공유해야합니다

그렇게하기 위해서는 GPU 또는 TPU 클러스터를 설정해야합니다 혼자서 또한 매개 변수 서버를 설정해야합니다 매개 변수의 모든 업데이트를 공유합니다 모든 GPU 또는 TPU 중에서 따라서 복잡한 설정입니다

그리고 많은 경우에, 당신은 – 동기화 오버 헤드가 발생할 것입니다 수백이나 수천 명의 사람들이 있다면 단일 클러스터에있는 TPU 또는 GPU 중 그 일은 엄청난 오버 헤드가 될 것입니다 그리고 그것은 확장 성을 제한합니다 하지만 TPU 포드로 하드웨어가 처리합니다 고속 인터커넥트가 동기화됩니다

단일 TPU의 모든 매개 변수 업데이트 다른 수천 개의 TPU가 순식간에 매우 짧은 대기 시간 따라서 매개 변수 서버를 설정할 필요가 없습니다 또는 대형 GPU 클러스터를 설정할 필요가 없습니다 혼자서 또한 거의 선형적인 확장 성을 얻을 수 있습니다

귀하의 교육에 더 많은 TPU 코어를 추가하십시오 마틴은 실제 확장 성을 보여줄 것입니다 나중에 결과 앞서 언급했듯이 TensorFlow 사용자 전체 TPU 포드를 하나의 거대한 컴퓨터로 사용할 수 있습니다 그 안에 수천 개의 TPU 코어가 있습니다

따라서 단일 컴퓨터를 사용하는 것만 큼 쉽습니다 예를 들어 Keras 코드가 단일 TPU에서 실행되는 경우, 또한 변경없이 2,000 TPU 코어에서 실행됩니다 마틴이 이전에 보여준 것과 정확히 같은 코드입니다 따라서 데이터의 모든 복잡성 평행 훈련, 예를 들어 훈련 분리 데이터를 여러 개의 TPU에 저장하거나 공유 동일한 매개 변수는 모두 TPU 포드 (pods)의 상호 연결 (interconnect) XLA 컴파일러 및 새로운 TPUStrategy TensorFlow 114의 API 바꿀 수있는 한 가지는 배치 크기입니다

마틴이 말했듯이, TPU 코어는 매트릭스 프로세서 이것은 128 x 128 매트릭스 곱셈기를가집니다 그래서 보통, 당신은 최고의 성능을 얻을 것입니다 배치 크기를 TPU의 128 배로 설정함으로써 코어 10 개의 TPU 코어가 있다면 1,280이 될 것입니다 TPU 포드의 장점은 교육 시간 뿐만이 아닙니다 또한 거대 모듈의 교육을 가능하게합니다

메쉬 TensorFlow를 사용하여 데이터 병렬은 분산 된 교육의 보편적 인 방법이었습니다 하지만 한 가지 단점이 있습니다 그것은 큰 모델을 훈련시킬 수 없다 모든 부서가 모든 GPU와 공유되기 때문에 또는 TPUs를 사용하면 적합하지 않은 큰 모델을 가져올 수 없습니다 하나의 GPU 또는 TPU의 메모리에 저장합니다

그래서 분산 교육이라는 또 다른 방법이 있습니다 병렬 모델 병렬 모델을 사용하면 거대한 모델을 분리 할 수 ​​있습니다 여러 GPU 또는 TPU에 훨씬 더 큰 모델을 훈련시킬 수 있습니다 그러나 그것은 대중적인 방법이 아니었다

왜? 구현하기가 훨씬 어렵 기 때문입니다 다이어그램에서 볼 수 있듯이 모든 통신을 구현해야한다 모델의 일부분 사이 그것은 모델 사이에 바느질과 같습니다 그리고 다시 복잡한 클러스터를 설정해야합니다

많은 경우에 커뮤니케이션 모델 사이 수십만 명이 있다면 CPU 또는 GPU 또는 TPU 코어의 그 큰 오버 헤드가 될 것입니다 그렇기 때문에 모델 병렬 모델은 그렇지 않습니다 너무 인기가있어 이러한 문제를 해결하기 위해 TensorFlow 팀 Mesh TensorFlow라는 새로운 라이브러리를 개발했습니다

이것은 분산 된 교육의 새로운 방식입니다 다수의 컴퓨팅 노드들과 함께, TPU 포드, 다중 GPU 또는 다중 CPU와 같은 여러 가지 기능을 제공합니다 TensorFlow는 추상화 계층을 제공합니다 이러한 컴퓨팅 노드를 논리적 n 차원 망사 Mesh TensorFlow는 이제 오픈 소스로 사용할 수 있습니다

코드는 TensorFlow GitHub 저장소에 있습니다 이미징에서 어떻게 작동하는지 보려면, 당신은 간단한 신경 네트워크를 가질 수 있습니다 이것은 MNIST 모델을 인식하기위한 것입니다 이 네트워크의 배치 크기는 512, 및 데이터 차원을 784로 정의하고, 하나의 숨겨진 계층 100 개의 노드로 구성되며 10 개의 클래스로 출력됩니다 그리고 당신이 그 모델로 그 네트워크를 훈련시키고 자한다면 병렬, 당신은 단지 지정할 수 있습니다, 나 매개 변수를 4 개의 TPU로 분할하여 메쉬로 분할하려고합니다

TensorFlow, 그게 전부 야 당신은 어떻게 생각할 필요가 없습니다 분할 모델 간의 통신 구현 통신 오버 헤드에 대해 걱정할 필요가 있습니다 어떤 종류의 코드를 작성할 것입니까? 다음은 모델 병렬을 사용하는 코드입니다 처음에는 치수를 정의해야합니다

데이터와 모델 모두의 이 코드에서는 배치 치수를 512로 정의하고, 데이터의 크기는 784 개이며, 숨겨진 레이어에는 100 개의 노드와 10 개의 클래스가 있습니다 그런 다음 자신의 네트워크를 정의합니다 두 세트의 가중치와 같은 Mesh TensorFlow API를 사용하여 하나의 숨겨진 레이어, 그리고 하나의 로그와 손실 함수, 이러한 차원을 사용하여 마지막으로 메쉬에있는 TPU 또는 GPU의 수를 정의하고, 그리고 당신이 사용하고자하는 레이아웃 규칙은 무엇입니까? 이 코드 예제에서는 숨겨진 레이어를 정의하고 있습니다 모형 매개 변수를 4 개로 분할하기위한 치수 TPUs 그리고 그게 다야

Mesh TensorFlow가이 코드를 살펴볼 수 있도록 자동으로 모델 매개 변수를 4 개로 나눕니다 TPUs 그리고 모든 TPUs와 동일한 교육 데이터를 공유합니다 데이터와 모델을 병렬로 결합 할 수도 있습니다 예를 들어 다음과 같이 2D 메쉬를 정의 할 수 있습니다

그리고 당신은 메쉬의 행을 데이터 병렬로 사용합니다 메쉬 또는 모델 병렬의 열을 사용하고, 그래서 당신은 그들 모두로부터 이익을 얻을 수 있습니다 Mesh TensorFlow를 사용하여 쉽게 정의 할 수 있습니다 배치 크기를 지정할 수 있습니다 열에 대한 열 및 숨겨진 레이어 크기 이것은 메쉬를 사용하는 예제입니다

트랜스포머 모델 교육을위한 TensorFlow 트랜스포머 모델은 매우 대중적인 언어 모델입니다 나는 변압기 모델에 대해 더 깊이 들어 가지 않습니다 하지만 알 수 있듯이지도 작성이 매우 쉽습니다 변환기 모델의 각 계층 메쉬 TensorFlow의 레이어로드 대형 데이터와 대형 모델을 효율적으로 매핑 할 수 있습니다

수십만 개의 TPU 코어에 통합 메쉬 TensorFlow를 사용하여 그렇다면 이점은 무엇입니까? TPU 포드와 함께 실행되는 Mesh TensorFlow를 사용하면, Google AI 팀이 언어 모듈을 교육 할 수있었습니다 및 10 억 단어 규모의 번역 모델을 제공합니다 그리고 그들은 최첨단 점수를 얻을 수있었습니다 그 번호에서 볼 수 있듯이

따라서 사용 사례의 경우 모델이 클수록 당신이 얻는 정확성 TPU 포드와 평행 한 모델은 큰 장점을 제공합니다 그 최첨단 점수를 달성하는 데 도움이됩니다 대규모 모델의 또 다른 활용 사례를 살펴 보겠습니다 병렬 난 그냥 BigGAN 전화

그리고 나는 GAN이 무엇인지 GAN이 어떻게 작용하는지 더 깊이 생각하지 않습니다 그러나 여기에 기본적인 아이디어가 있습니다 두 개의 정의 된 네트워크가 있습니다 하나는 discriminator D라고하고 다른 하나는 생성기 G라고합니다 그리고 손실 함수를 정의합니다

D가 이미지인지 아닌지를 인식하도록 훈련되어야한다 가짜 이미지 또는 실제 이미지 동시에 발전기가 훈련 될 것입니다 D가 찾을 수 없도록 현실적인 이미지를 생성한다 그것은 가짜입니다

그것은 당신이 그 두 사람과 놀고있는 미니 맥스 게임과 같습니다 네트워크 그리고 결국에는 일반 G 사진 사실적인 가짜 이미지를 생성 할 수 있습니다 인공 이미지 데모 비디오를 살펴 보겠습니다

그래서 이것은 큰 스포일러가 아닙니다 나는 이미 더 큰 모델을로드했다 그것은 TPU 포드에서 훈련되었습니다 보시다시피 이들 모두입니다 인공 합성 이미지를 고품질로

카테고리를 지정할 수도 있습니다 타조와 같은 생성 된 이미지의 타조 이미지를 생성 할 수 있습니다 이것들은 모두 합성 인공 이미지입니다 그들 중 누구도 진짜가 아닙니다 그리고 BigGAN은 소위 잠재 공간을 가질 수 있기 때문에 그 이미지를 생성 할 씨앗이 있고, 당신은 두 개의 씨앗 사이를 삽입 할 수 있습니다 이 예제에서는 보간 중입니다

골든 리트리버와 라사 사이 그리고 다른 조합을 시도해 볼 수 있습니다 보간의 서쪽 고지 화이트 테리어 골든 리트리버 다시 말하지만, 모두 가짜 이미지입니다 그래서이 더 큰 모델은 TPU 버전 3으로 훈련되었습니다

포드 512 코어 그리고 그것은 24 시간에서 48 시간이 걸렸습니다 왜 BigGAN이 그렇게 많은 TPU 코어와 오랜 시간이 걸리는지? 이유는 모델 크기와 배치 크기입니다 GAN 모델에 의해 측정 된 GAN 모델의 품질은, 시작 점수 또는 IS 점수로 측정됩니다 그것은 얼마나 많은 초기 모델을 나타냅니다 그 이미지가 진짜라고 생각합니다

또한 생성 된 이미지의 다양성을 나타냅니다 BigGAN 신문에 따르면 당신이 가지고있을 때 더 좋은 IS 점수 모델의 더 많은 매개 변수 및시기 더 큰 배치 크기를 사용하고 있습니다 즉, 더 큰 스케일의 모델은 병렬입니다 수백 개의 TPU 코어에서 BigGAN 모델에 필수적입니다 생성 된 이미지의 품질을 향상시킬 수 있습니다

그래서 두 가지 유스 케이스를 보았습니다 BigGAN 유스 케이스 및 언어 모델 유스 케이스 그리고 그 모델의 첫 번째 응용 프로그램입니다 TPU 포드와 평행을 이룬다 그러나 그들은 단지 시작에 불과합니다 그래서 TPU 포드는 지금부터 모든 사람들이 이용할 수 있습니다

그래서 우리는 점점 더 흥미 진진한 모습을 기대합니다 새 TPU 포드 사용자가 제공 한 사용 사례 또한 응용 프로그램에서 그래서 그것이 내 부분을위한 것입니다 마틴으로 돌아 가라 MARTIN GORNER : 이제 데모를 확인해보십시오

우리 모형이 실제로 훈련 되었습니까? 여기를 확인해 보면 훈련이 끝난 것처럼 보입니다 저장된 모델이 저장되었습니다 그래서해야 할 유일한 일은 이 모델이 실제로 뭔가를 예측할 수 있는지 확인합니다 그래서 두 번째 머신에서 똑같은 모델을 다시로드 할 것입니다 승인

나는 그것이 하나다고 믿는다 가서 다시로드하자 그래서 이번에는 훈련을 건너 뛰고 여기로 가겠습니다 추론과 로딩 죄송합니다, 죄송합니다

데모 신이 오늘 나와 함께 할 것이기를 바랍니다 괜찮아 내가 잘못된 디렉토리를로드하고 있기 때문입니다 데모 신은 나와 거의 같다 내 모델이 저장되었던 곳이 바로이 곳입니다

괜찮아 예 과연 그것은 같지 않았습니다 미안합니다

훈련도, 단지 추론도 그리고 이번에는 내 모델이로드되는 것처럼 보입니다 일단로드되면 실제로 볼 수 있는지 이미지에서 동물을 감지하면 여기 있습니다 그래서이 표범은 실제로 표범입니다 이 새는 새입니다

사자는 사자입니다 이것은 매우 까다로운 이미지입니다 그래서 나는 체리 선택 이미지가 아니라 당신을 보여주고 있습니다 이것은 무대에서 훈련 한 모델입니다 여기 있습니다

완벽한 모델은 없습니다 우리는이 같은 잘못된 탐지를 보게 될 것입니다 하지만 까다로운 문제입니다 그것은 삽화입니다 실제 사자가 아닙니다

표범이 자리하고있어 사자가 자리하고있어 그리고 권투가 실제로 아주 잘 작동하는 것을보십시오 표범은 이미지에서 완벽하게 식별되었습니다 이제 더 도전적인 것으로 넘어 갑시다

심지어이 풍선 예술품 사자가 확인되었습니다, 항상 그런 것은 아닙니다 이것은 복잡한 이미지입니다 새들의 무리 그래서 모든 것을 보지 못한다는 것을 알 수 있습니다 그러나 그들 모두는 최소한 새들입니다

그것은 꽤 좋은 직업이다 표범은 괜찮아 아, 그리고 우리가 가진 가장 복잡한 것입니다 말과 소가있다 음, 여기에 몇 가지 잘못된 탐지가 시작됩니다

물론 그 암소는 돼지가 아닙니다 내가 말했듯이, 어떤 모델도 완벽하지 않습니다 하지만 여기 호랑이는 호랑이입니다 우리 두 개의 귀여운 판다 있어요 그리고 그 2 개의 귀여운 팬더는 실제로 아주 어렵다

아기 팬더이기 때문입니다 그리고 저는이 모델이 300,000 이미지 데이터 세트에 많은 아기 동물이 있습니다 그래서 두 팬더를 찾을 수있어서 기쁩니다 그래서 뒤로 물러서서, 너를주는 것으로 끝내자 해당 모델에 대한 몇 가지 피드와 속도

그래서 여기에서이 모델은 RetinaNet 50 백본을 가지고 있습니다 박스를 생성 한 모든 감지 레이어를 더한 것입니다 그리고 우리는 128 코어를 가진 TPU v3 포드에서이를 교육했습니다 20 분 안에 끝났어 당신은 저를 믿을 필요가 없습니다

보여 드리죠 여기 타이머를 내 대본을 읽도록했습니다 19 분 18 초 그래서 나는 속이고 있지 않습니다 이것은 살아 있었다

그러나 나는 또한이 모델을 작은 포드에서 실행할 수 있습니다 사실, TPU v2-32에서 시도했습니다 이 차트에서이 축의 속도를 볼 수 있습니다 이 축의 시간 이것은 TPU v2-32가 실제로는 당신을 보여주는 것입니다 갖고있는 매우 유용한 도구

우리는 지금까지 거대한 모델에 대해 이야기 해왔다 그러나 이것이 거대한 모델인지 여부는 논쟁의 여지가 있습니다 이것은 1 년 전에 거대한 모델이었습니다 오늘, 더 나은 도구로, 나는 그것을 훈련시킬 수있다 상당히 겸손한 TPU v2 32 코어 포드 (pod)에서 한 시간 만에

따라서 개인 데이터 과학자 인 경우 라 할지라도, 그건 내가 쓸모있는 도구가 될 때 유용하다 나는 이런 모델에 대한 일련의 훈련을 할 필요가있다 누군가 동물 탐지 모델을 원하기 때문입니다 그리고 훈련을 1 시간으로 가져 가라 공간 또는 20 분 공간 나를 훨씬 빠르게 작업하고 훨씬 더 빠르게 반복 할 수 있습니다

hyperparemeters에, 미세 조정에, 등등 하나의 TPU v3에서 볼 수 있습니다 결론입니다 그리고 우리가 이것을 GPU에서 훈련한다면 – 처음부터 우리의 경험을 기억하십시오 하나의 TPU v2, 대략 5 GPU

따라서 1 TPU v3, 대략 10 GPU 그래서 GPU 라인은 가장 낮은 것의 10 분의 1이 될 것입니다 이 그래프의 선 간신히 거기 등록 할 것이기 때문에 나는 그것을 두지 않았다 그것은 당신에게 규모의 변화를 보여줍니다

TPU를 사용하여 모델을 교육 할 수 있습니다 이것에 대해 궁금해하실 것입니다 따라서 규모를 확장 할 때 발생할 수있는 한 가지 학습 속도 일정을 조정해야한다는 것입니다 이것은 실제로 학습 속도 일정입니다 필자는 128 코어 TPU 포드에서 모델을 교육하는 데 익숙했습니다

그럴 수도 있기 때문에 단지 몇 마디 만 당신이 본 가장 평범한 학습 속도 일정 이 경사가 있습니다 따라서 두 번째 부분은 기하 급수적 인 감소입니다 그건 상당히 표준입니다 그러나 부분적인 상승은, 우리가 ResNet-50에서 시작하여 초기화 됨 미리 훈련 된 무게로

그러나 우리는 여전히 그 무게를 훈련 가능한 상태로 두었습니다 그래서 우리는 모든 것을 훈련하고 있습니다 그것은 양도 학습이 아닙니다 사전 훈련 된 ResNet-50을 미세하게 조정하는 것입니다 그리고 네가 그렇게 할 때, 너는 훈련한다

우리가 여기에서하는 것처럼 큰 배치를 사용하여 매우 빠르며, 여기서 배치 크기는 64 배 128입니다 그래서 매우 큰 배치 크기입니다 실제로 사전 훈련 된 가중치를 깰 수도 있습니다 당신의 정밀도에 해를 끼치는 방식으로 그래서 기간을 늘리는 것이 일반적입니다

그 초기 훈련에서 네트워크, 단계, 그것이 무엇을하는지 모를 때, 정보를 완전히 파괴하지 않는다 훈련 전의 무게로 그래서 우리가 해냈습니다 우리는이 모델을 20 분 안에 무대에서 훈련 시켰습니다 그리고 데모가 효과적이었습니다

정말 기쁩니다 그래서 이것이 끝입니다 우리가 본 것은 TPUs와 TPU 포드입니다 빨리, 네 그러나 대부분 비용 효율적입니다

매우 비용 효과적인 방법과 좋은 도구 어떤 데이터 과학자도 가질 수 있습니다 또한, 특히 매우 큰 모델의 경우, 과거에는 큰 모델이었던 ResNet-50과 같은 오늘날의 정상적인 모델입니다 [알아들을 수 없는] 그것은 매우 유용한 도구입니다 그런 다음 Cloud TPU 포드를 클릭하면 데이터뿐만 아니라 모델 병렬 처리를 가능하게하고, 이 새로운 라이브러리 인 Mesh TensorFlow를 사용합니다

여기에 몇 가지 링크가있는 자세한 정보가 있습니다 더 알고 싶다면 예, 사진을 찍을 수 있습니다 더 궁금한 점이 있으시면 AI ML 포드, 빨간색, 하나의 TPU 랙 앞 그래서 이걸 라이브로 볼 수 있고 그것이 어떤 종류의 컴퓨터인지 느낀다

그리고 그걸로, 대단히 감사합니다 [박수 갈채] [음악 재생]

TF-Agents: A Flexible Reinforcement Learning Library for TensorFlow (Google I/O'19)

[음악 재생] 세르지오 구아 달라 라 : 오늘, 우리는 가고있다 보강 학습에 대해 이야기하고, 어떻게 적용 할 수 있는지 많은 다른 문제들

이렇게 희망을 갖고, 말의 끝까지, 당신은 강화 학습을 사용하는 방법을 알게 될 것입니다 문제, 응용 프로그램, Google에서 수행중인 다른 모든 작업 이러한 새로운 기술 그럼 내가 좀 가자 어려운 일을하려고 할 때 기억하니? 그게 많이 힘들었습니까? 예를 들어 걷는 법을 배웠을 때 기억 나니? 나는 기억이 안 나 아무도 당신에게 말하지 않기 때문에 정확히 어떻게하는지

너는 계속 노력하고있어 그리고 결국, 당신은 일어 서서, 균형을 유지하고, 주변에서 흔들리고 걷기 시작합니다 그렇다면이 귀여운 로봇에게 걷는 법을 가르치려면 어떨까요? 상상해보십시오 어떻게 할 것입니까? 이 로봇에게 어떻게 걸을 지 알려주시겠습니까? 오늘 우리가 할 일은 우리가 기계 학습을 통해 그것을 어떻게 할 수 있는지 배우십시오 그 이유는 우리가 일련의 규칙을 호출하여이를 수행하려는 경우, 정말 어려울 것입니다

실제로 어떤 종류의 규칙을 코드에 넣을 수 있습니까? 이 로봇을 산책 시키시겠습니까? 우리는 균형을 이루어야합니다 정말 어렵습니다 그리고 아마 그들은 아마 그냥 넘어 질 것입니다 그리고 우리는 코드에서 무엇을 바꾸어야할지 모른다 그 대신에 우리는 기계를 사용할 것입니다

그것으로부터 배우는 것을 배우는 것 오늘 의제는 이렇게 될 것입니다 우리는 무엇을 매우 빨리 처리 할 것인가? 감독 학습, 강화 학습, 무엇인가 TF-Agents입니다 우리가 방금 이야기 한 것들입니다 여러 예제를 통해 살펴 보겠습니다

그래서 우리는 실제로 다른 조각을 만들 수 있다는 것을 알 수 있습니다 가서이 문제를 해결하고,이 로봇에게 걷는 법을 가르쳐주십시오 그리고 마지막으로, 우리는 여러분이 오늘 너와 함께 할 수있어 따라서 감독 학습이란 무엇을 압니다 승인

꽤 괜찮아 모르는 사람들을 위해 가자 아주 간단한 예입니다 그래서 우리는 약간의 입력을 가지게 될 것입니다,이 경우, 이미지처럼 그리고 우리는 우리 모델을 통과 할 것입니다

우리는 몇 가지 결과물을 넣을 것입니다 이 경우 고양이 나 개가 생길 것입니다 그리고 올바른 답을 알려 드리겠습니다 이것이 바로 핵심 요소입니다 학습 감독에서는 레이블을 알려줍니다

정답은 무엇입니까? 따라서 모델을 수정하고 이러한 실수로부터 배우십시오 이 경우 신경망을 사용할 수 있습니다 우리는 당신이 배울 수있는 많은 방법을 가지고 있습니다 그리고 그 연결을 수정할 수 있습니다 기본적으로 옳은 대답은 무엇인지 시간이 지남에 따라 배웁니다

감독 학습이 필요로하는 것 많은 레이블입니다 여러분 중 많은 사람들이 이미 지 (IMAGENET)에 대해 들었습니다 스탠포드가 수집 한 데이터 세트입니다 2 년과 1 백만 달러가 걸렸습니다 이 모든 데이터를 수집합니다

그리고 수백만 개의 이미지에 라벨을 붙일 수 있습니다 이 이미지에서 컨테이너를 받았습니다 모터 스쿠터가 있습니다 표범이있어 그런 다음이 모든 이미지에 라벨을 붙입니다

그래서 당신의 모델은 그것으로부터 배울 수 있습니다 그리고 그것은 정말로 잘 작동했습니다 당신은이 모든 레이블을 가질 수 있습니다 그것으로부터 당신의 모델을 훈련시킬 수 있습니다 문제는 라벨을 어떻게 제공하겠습니까? 이 로봇을 위해서? 올바른 행동은 무엇입니까? 나는 모른다

그렇게 명확하지 않습니다 이 사건에 대한 올바른 대답은 무엇입니까? 그래서 우리는 다른 접근 방식을 택할 것입니다 강화 학습과 같습니다 올바른 대답을 제공하는 대신 고전적인 환경에서와 마찬가지로, 당신은 수업에 갈 것이고, 그들은 올바른 답이 무엇인지 말해줍니다 당신도 알다시피,이게이 문제에 대한 답입니다

우리는 옳은 대답이 무엇인지 이미 알고 있습니다 보강 학습에서는, 우리는 옳은 대답이 무엇인지 모릅니다 우리는 스스로 알아낼 필요가 있습니다 그것은 마치 어린 아이 같아요 이 라벨들을 합쳐서 연주하고 있습니다

그리고 결국, 그들은 그것을 함께 겹쳐서 놓을 수 있습니다 쪽으로 그리고 그것은 당신에게 어떤 보상을줍니다 그것은 오, 당신이 그것을 자랑스럽게 여기는 것과 같습니다, 그리고 당신은 계속 그렇게합니다 네가 한 행동은 무엇인가? 별로 관련이 없습니다

따라서 강화 학습이 무엇인지 공식화 해 봅시다 실제로 어떻게 만들 수 있는지 보다 구체적인 예를 들어 보겠습니다 이 간단한 게임처럼 간단한 예를 들어 봅시다 당신이하려고하는 것 공을 바운스하고 더미를 움직이기를 원한다

아래 왼쪽 또는 오른쪽, 그리고 당신 이 모든 벽돌을 치고 싶고이 게임을하고 싶다면, 정리하고 게임에서이기십시오 그래서 우리는이 에이전트의 개념을 갖게 될 것입니다 또는 어떤 예약을 얻을 프로그램 이 경우 친구가 게임을 보게됩니다 공은 무엇인가, 브레이크는 어디에 있는가, 퍼즐은 무엇인가, 행동을 취하십시오

왼쪽으로 이동하거나 오른쪽으로 이동할 것입니다 그리고 당신이 움직이는 곳에 따라, 공은 떨어질 것이고, 또는 당신은 실제로 공을 뒤로 튀게 유지하기 시작합니다 그리고 우리는이 보상의 개념을 갖게 될 것입니다 네가 잘할 때와 같은 것은, 우리는 당신이 긍정적 인 보상을 받기를 바랍니다 그래서 당신은 그 행동을 강화합니다

그리고 당신이 잘못하면 네가 부정적인 보상을받을 것이다 그래서 우리는 간단한 규칙과 간단한 것을 정의 할 수 있습니다 기본적으로이 동작을 보상 기능이라고합니다 벽돌을 칠 때마다 10 점을 얻습니다 벽돌을 치기 위해 어떤 행동을 취해야합니까? 나는 당신에게 말하지 않는다

그것이 당신이 배울 필요가있는 것입니다 그러나 만약 당신이 그것을한다면, 나는 10 점을 주려고합니다 모든 벽돌을 치우면 나는 너에게 실제로 100 달러를 줄거야 당신이 실제로 플레이하도록 장려하는 포인트 이 게임은 아주 좋아 그리고 공이 떨어질 때마다 50 점을 잃어 버린다

그렇게하는 것이 좋습니다 그리고 공을 세 번 떨어 뜨리면 게임은 끝났습니다 게임을 중단해야합니다 좋은 점은 보강 학습에 관한 것입니다 당신은 많은 다른 문제에 적용 할 수 있습니다

지난 몇 년 동안 사람들이 강화 학습을 적용하고 있습니다 그리고 YouTube의 추천 인스턴스, 데이터 냉각, 실제 로봇으로 설정합니다 당신은 수학, 화학, 또는 중간에 귀여운 작은 로봇, 그리고 사물 그들이가는만큼 복잡합니다 DeepMind가 AlphaGo에 적용된 것처럼 강화 학습을 사용하여 세계 최고의 선수 이제는 TF-Agents와 그 역할을 조금 바꾸어 보겠습니다

TF-Agents의 핵심 아이디어는 강화 학습을하는 것과 같습니다 아주 쉽지 않다 많은 도구와 많은 것들이 필요합니다 당신이 직접 만들 필요가 있습니다 그래서 Google에서 사용하는이 라이브러리를 구축했습니다

우리는 소스를 열어 모두가 할 수 있습니다 강화 학습을 사용하기가 훨씬 쉬워 지도록 사용하십시오 그래서 우리는 매우 견고합니다 확장 성이 있으며 초보자에게 좋습니다 RL에 처음 오신 분들은 노트, 예제 문서 당신이 일을 시작할 수 있습니다

또한 복잡한 문제의 경우 진짜 복잡한 문제에 적용 할 수있다 현실적인 경우에 사용하십시오 자신의 알고리즘을 만들고 싶은 사람들을 위해, 새로운 알고리즘을 쉽게 추가 할 수 있습니다 테스트가 잘되고 구성하기 쉽습니다 또한 TensorFlow 2

0 위에 구축합니다 이전에 Google I / O에서 들었을 가능성이 있습니다 그리고 우리는 그런 방식으로 만들어서 개발과 디버깅을하고 있습니다 훨씬 쉬워 TF-Eager 모드와 Keras 및 TF 기능을 사용할 수 있습니다

물건 만들기가 훨씬 쉬워졌습니다 매우 모듈화되고 확장 성이 뛰어납니다 소프트웨어의 주요 부분을 조금만 설명해 드리겠습니다 그래서 예제들을 살펴볼 때, 당신은 더 나은 감각을 가지고 있습니다 왼쪽에는 모든 데이터 수집이 있습니다

이 게임을 할 때 우리는 데이터를 수집 할 것입니다 우리는 게임을 할 것입니다 데이터를 수집하여 배울 수 있습니다 그리고 오른쪽에, 우리는 가고 있습니다 훈련 파이프 라인을 가지고있다

우리가 데이터 세트와 같이 데이터를 가질 때, 또는 로그인하거나 게임을 할 때, 우리는 증거 또는 모델 -이 경우, 신경망 – 배포하고 더 많은 데이터를 수집하고 반복하겠습니다 자, 이제는 유진으로 넘겨 주자 누가 장바구니 예제를 검토 할 것인가 유진 브레도 : 고마워, 세르지오 그래, 우리가 갈 첫 번째 예제 카트폴 (Cartpole)이라는 문제입니다

이것은 고전적인 제어 문제 중 하나입니다 손에 막대기가 있다고 상상해보십시오 중력 때문에 넘어지고 싶습니다 그리고 손을 좌우로 움직여야합니다 그것을 똑바로 유지

그리고 넘어지면 게임이 끝납니다 우연히 화면을 벗어나면 게임을 끝내십시오 그러니 좀 더 구체적으로 만들어 봅시다 이 환경에서 관찰은 이미지가 아닙니다 당신이 여기에서 볼 수 있습니다

대신, 그것은 네 벡터 포함 폴과 카트의 각도와 속도 동작은 0과 1 값입니다 왼쪽 또는 오른쪽을 차지할 수있는 것을 나타냅니다 그리고 보상은 매 단계 또는 프레임마다 값 10입니다

막대기가 위로 있고 더 많이 넘어지지 않았다는 것 수직에서 15도 이상 일단 그것이 나면 에피소드가 끝납니다 좋습니다 그래서이 문제 나 환경을 구현한다면 당신은 TF-Agents를 환경 클래스에 의해 서브 클래스화할 것이고, 당신은 두 가지 속성을 제공 할 것입니다 하나는 관측 양상으로 불리며, 관찰 결과를 정의합니다

그리고 당신은 action spec 속성을 구현할 것입니다 환경에서 허용하는 동작을 설명합니다 그리고 두 가지 주요한 방법이 있습니다 하나가 재설정되어 환경을 재설정합니다 폴을 중앙 및 수직으로 가져옵니다

그리고 액션과 업데이트를 받아들이는 set 메소드 모든 내부 상태 및 관측 및 보상을 내 보냅니다 그 타임 스탬프 자,이 특별한 문제에 대해, 당신은 그렇게 할 필요가 없습니다 OpenAi는 매우 인기있는 프레임 워크입니다 파이썬 환경

그리고 그걸로 CartPole을 간단히 적재 할 수 있습니다 그것이 첫 번째 라인입니다 이제 인트로 스펙 션을 수행 할 수 있습니다 환경을 조사 할 수 있습니다 관측 사양 여기서, 당신은 이것이 떠있는 앞으로의 벡터임을 알 수 있습니다

포인트 값 다시, 극의 각도와 속도를 기술하십시오 그리고 Action Spec은 스칼라 정수입니다 왼쪽과 오른쪽을 나타내는 값 0과 1을 선택합니다 그래서 당신이 지은 자신의 정책이 있다면, 어쩌면 스크립팅 된 정책 일 수도 있습니다

환경과 상호 작용할 수있다 이를로드하고, policy 오브젝트를 빌드하고, 환경을 초기 상태로 재설정하고, 그리고 반복해서 반복한다 관찰 또는 국가를 정책에 전달하고, 그걸로 행동을 취하고, 그 행동을 되 돌린다 환경에, 아마도 귀하의 수익을 계산, 보상 또는 모든 단계의 합계입니다 이제 흥미로운 부분은 막연한 정책을 만들고 싶다

당신은 환경에서의 성공을 통해 배우고 싶었습니다 이를 위해 우리는 신경망을 반복합니다 그래서 신경 네트워크는 관측과 이미지를 도입합니다 이 경우에 우리가 말하는 알고리즘은 강화라고 불리는 정책 구배 (policy gradients) 그 행동에 대해 확률을 낼 것입니다 수 있습니다

그래서이 경우에, 그것은 방출 할 것입니다 좌익의 확률 또는 복용 확률 권리, 그리고 그것은 매개 변수화되어있다 데이터라는 신경망의 무게로 그리고 궁극적으로,이 알고리즘의 목표 시간이 지남에 따라 신경 네트워크를 수정하려고합니다 예상 수익을 극대화 할 수 있습니다 그리고 내가 언급했듯이 반환은 에피소드 기간 동안 보상의 합계

그리고 계산할 수 있습니다 이 기대만큼 계산하기가 어렵습니다 분석적으로 그래서 우리가 할 일은 에피소드를 샘플링 할 것입니다 연주함으로써, 우리는 궤적을 얻을 것입니다, 우리는 그 궤도를 저장할 것입니다

이들은 에피소드에 대한 관찰 행동 쌍입니다 우리는 그들을 추가 할 것입니다 몬테카를로의 예상 수익입니다 승인? 그리고 우리는 몇 가지 수표를 만들려고합니다 그 기대 최적화 문제를 합계로 변환하기

그라디언트 디센트를 사용하여 최적화 할 수 있습니다 나는 수학의 일부를 건너 뛰겠다 하지만 기본적으로 우리가 사용하는 것은 로그라고하는 것입니다 트릭이 그라디언트 문제를 변환 신경망의 출력에 대한 기울기로 변환합니다 바로 거기에 로그 파이타가 있습니다

그것이 네트워크의 결과입니다 그리고 우리는 그것을 Monte Carlo 수익 추정치 그리고 우리는 타임 스탬프를 평균 할 것입니다 에피소드 내 및 여러 일괄 반복 이것을 코드에 넣으면 – 그런데 우리는 이것을 당신을 위해 구현합니다 그러나 그것은 의사 코드의 종류입니다

훈련을받을 때이 경험을 얻을 수 있습니다 당신은 보상을 추출하고 누적 합계 타입을합니다 반환을 계산하는 작업 그런 다음, 모든 시간 단계에 걸쳐 관측을하고, 로터스 계산, 로그 확률 계산 신경 네트워크 그것들을 배포 객체에 전달합니다 이것은 TensorFlow 확률 분포 객체입니다 – 행동을 통해 배포판을 얻으려면

그리고 전체 로그 확률을 계산할 수 있습니다 당신의 궤적에서 취한 행동들 및 귀하의 로그, 그리고이 근사치를 계산 기대치를 높이고 그라디언트를 취하십시오 좋아, 최종 사용자로서, 당신은 필요하지 않습니다 너무 많이 걱정하는 것 당신이하고 싶은 것은 당신의 환경을로드하는 것입니다, 당신은 그것을 TF Py 환경이라고 불리는 것으로 싸 웁니다

그리고 그것은 파이썬 사이의 상호 작용으로 쉽습니다 문제 설정 및 환경 및 실행중인 신경망 TensorFlow 런타임에 의해 이제 신경망을 만들 수도 있습니다 그리고 여기에서, 당신은 당신 자신의 것을 쓸 수 있습니다 그리고 기본적으로 Keras 레이어 시퀀스입니다

Keras에 익숙한 여러분, 자신의 아키텍처를 매우 쉽게 설명 할 수 있습니다 네트워크 용 우리는 다수의 신경망을 제공합니다 이 매개 변수는 아키텍처를 구성하십시오 여기에는 완전히 연결된 두 개의 레이어가 있습니다

크기는 32와 64입니다 이 네트워크와 사양을 통과했습니다 에이전트 클래스에 대한 환경과 연관됩니다 이제 그걸 모으고 훈련 할 준비가되었습니다 따라서 데이터를 수집하려면 저장 장소가 필요합니다

그리고 세르지오 (Sergio)는 두 번째 예에서 더 자세히 설명 할 것입니다 하지만 기본적으로, 우리는 이러한 궤도를 저장할 버퍼를 재생하십시오 그리고 우리는 많은 유틸리티를 제공합니다 귀하를 위해 데이터를 수집합니다 그들은 운전자라고 불립니다

그래서이 드라이버는 환경을 필요로합니다 에이전트 경로에 의해 노출 된 정책을 취한다 콜백의 숫자 그리고 그것이 할 일은 그것이 데이터 수집 반복, 상호 작용 환경과 함께 행동을 보내고 관측, 그 정책에 보내는, 당신을 위해 않습니다 그리고 매번 멈출 때마다, 재생 버퍼에 저장됩니다

그래서 기차를 운전하면 드라이버를 호출하는 것을 반복합니다 재생 버퍼를 채 웁니다 그럼 당신은 재생의 궤적을 모두 꺼내야합니다 버퍼를 모두 수집하면, agenttrain은 기본 신경 네트워크를 업데이트합니다

그리고 정책 기울기가 정책 알고리즘에 힘 입어 수집 한 데이터, 그것을 버리고 더 많이 모아야합니다 승인? 따라서 CartPole은 상당히 직설적입니다 고 지적했다 정책 그라디언트는 상당히 표준적이고 다소 단순합니다 연산

그리고 게임을 약 400 회 반복 한 후에, 네가 시작한 동안 너는 그것을 볼 수있다 무작위 정책으로 극을 유지할 수는 없습니다 게임을 400 회 반복 한 후, 당신은 기본적으로 완벽한 정책을 가지고 있습니다 그리고 만약 당신이 당신의 TensorBoard를 보았다면 네가 훈련을하는 동안 줄거리가 보일거야 이처럼, 에피소드의 수로서 수집되는 총 수익은 증가합니다

에피소드에 대한 보상의 합계 인 꽤 꾸준히 올라간다 그리고 약 400, 500 에피소드에서 우리는 완벽한 알고리즘을 가지고 있습니다 에피소드에서 200 단계 씩 진행되는데, 좋아, 니가 좋아, 니가이기는거야 그리고 너 끝났어 알았어, 나는 세르지오에게 돌려 주겠어

아타리 (Atari)와 깊은 Q- 러닝에 대해 이야기합니다 세르지오 구아 달라 : 다시 한번 고마워 자 이제이 예제로 돌아가겠습니다 나는이 게임을하는 방법에 대해 처음에 이야기했다 이제 더 자세한 내용을 살펴 보겠습니다

이것이 실제로 어떻게 작동하는지,이 깊은 Q-learning이 어떻게 작동하는지 이 경우 우리를 도울 것입니다 그럼 우리의 환경으로 돌아가 봅시다 이제 우리는 환경이 있습니다 우리는 놀거야 우리는 몇 가지 관찰을 할 것입니다

이 경우, 프레임 에이전트 역할은 다른 동작을 생성하는 것입니다 외륜과 함께 왼쪽으로 가거나 오른쪽으로 가면서 보상을 받으십시오 그 과정에서, 그리고 시간이 지남에 따라 향상된다 기본적으로 이러한 보상을 모델에 통합함으로써 조금만 나아가서 말하자

내가 브레이크 아웃을 할 때, 나는 내가 한 일이 얼마나 멀리 있었는지 보았다 공이 어딘가로 가고있다, 나는 움직이고있다 중심 방향으로, 그리고 나서, 이제 어떻게해야합니까? 내가 오른쪽으로 가야합니까, 아니면 왼쪽으로 가야합니까? 일어날 일이 무엇인지 알았다면 매우 쉬울 것입니다 내가 아는 것을 알면, 공은 이런 식으로 갈 것입니다 그 일은 그렇게 될 것입니다, 그것은 쉬울 것입니다

그러나 그 하나, 우리는 쉽게 알지 못합니다 우리는 앞으로 어떤 일이 일어날 지 모릅니다 대신에, 우리는 무엇을 할 것인가? 내가 오른쪽으로 이동하면 예상하려고합니다 어쩌면 공이 떨어질 것입니다 공이 떨어질 가능성이 큽니다

내가 반대 방향으로 움직이기 때문에 공이 가고있다 그리고 내가 왼쪽으로 움직인다면, 반대로, 나는 공을 칠거야 나는 벽돌을 때릴거야 나는 모든 벽돌을 치우기 위해 더 가까워지고있다 그래서 생각은 내가 배우고 싶은 것입니다

그것을 추정 할 수있는 모델 이 행동으로 미래를 향해 나아갈 수 있다면 또는 그것을 더 나빠지게 할 것입니다 그리고 그것은 우리가 기대하는 수익이라고 부르는 것입니다 유진이 전에 말했던 것은 이것뿐입니다 우리가 계산하기 전에 그냥 합산해라

보상에 그리고 여기, 우리는 말하기를, 나는 이 행동을 예상하려면 얼마나 많은 보상이 필요한가요? 앞으로 나에게 줄 것입니다 그리고 나서, 나는 무엇을 선택할 것인가? 내 견적에 따르면 그것은 최선의 행동이다 그래서 우리는 수학을 사용하여 이것을 공식화 할 수 있습니다 그것은 기본적으로 합계에 대한 기대와 같습니다

미래에 대한 보상의 그리고 저는이 Q 함수를 비평가라고 부릅니다 기본적으로 우리에게 말할 예정이기 때문에 비평가이기도합니다 가능한 몇 가지 상태와 가능한 조치가 주어진다 행동이 실제로 더 낫습니까? 내가 어떤 식 으로든 비난하는 것은 마치 당신이이 행동을 취하는 것처럼, 반환에 대한 나의 기대는 매우 높습니다 그리고 당신은 다른 행동을 취합니다

나의 기대는 낮습니다 그리고 나서 우리가 할 일은 이 Q 함수를 배우려고합니다 왜냐하면 우리는 모릅니다 우리는 무슨 일이 일어날 지 모른다 그러나 연주함으로써 우리는 무엇을 배울 수 있습니다

우리 기대치를 비교하여 기대 수익률이다 실제 수익률 그래서 우리는 Q 함수를 사용할 것입니다이 경우, 신경망 – 이 모델을 배우기 우리가 배운 모델을 가지고있는 동안, 우리는 우리 모델에 따라 최선의 행동을 취할 수 있습니다

그리고 게임을해라 개념적으로 이것은 이전에 본 것과 비슷합니다 우리는 또 다른 신경망을 가질 것입니다 그리고이 경우 출력은 계속 될 것입니다 Q 값이기 때문에,이 기대 우리 미래의 수익의

그리고 그 생각은 우리가 관찰을 할 것이라는 것입니다, 이 경우에는 프레임 우리는 아마도 그것에 대해 약간의 역사가있을 것입니다 그리고 나서 우리는 어떤 Q 값을 미리 볼 것입니다 왼쪽으로 이동하면 현재 예상대로, 오른쪽으로 이동하면 현재의 기대치가됩니다 그리고 저는 제 기대치를 비교하려고합니다

실제로 일어날 것입니다 그리고 기본적으로 나의 기대가 너무 높으면, 나는 아래로 내려갈거야 그리고 나의 기대가 너무 낮 으면, 나는 그것을 늘릴 것입니다 그렇게해서 우리는 기본적으로 시간이 지남에 따라 향상되는이 네트워크의 가중치 이 게임을해서 우리는 여러분이 이것을 코드로 어떻게 처리하는지 돌아갑니다

기본적으로, 우리는이 환경을 기록 할 것입니다 이 경우에는 Atari 제품군에서 OpenAi에서 사용할 수 있습니다 나는 브레이크 아웃 게임을로드하라 이제 우리는 연주 할 준비가되었습니다 우리는 예약을해야 할 것입니다

우리는 어떤 종류의 예약을 정의 할 것입니다 이 사건에서 84와 같은 프레임이 있습니다 84 픽셀 씩 증가하며 우리는 여러 가지 대답을 할 수 있습니다 이 게임에서 우리는 좌우로 갈 수 있습니다 하지만이 제품군에는 다른 게임이 있습니다

다른 행동을 취할 수 있습니다 어쩌면 점프하고, 발사하고, 다른 일을하는 것일 수도 있습니다 다른 게임에는 있습니다 이제 우리는 전에 말했던 개념을하고 싶습니다 우리는이 Q 네트워크를 정의 할 것입니다

기억, 그것은 신경망 그거야 이 Q 값을 나타냅니다 몇 가지 매개 변수가 있습니다 얼마나 많은 레이어를 정의 할까? 모든 것들을 가지고 있습니다 그리고 나서 우리는 Q 에이전트를 갖게 될 것입니다

네트워크를 가져갈 예정이며, 기본적으로 시간이 지남에 따라이 네트워크를 개선 할 수있게 될 것입니다 경험을봤을 때 이 경험으로, 우리는 우리는 일부 데이터를 수집하고 우리는 게임을했습니다 그리고 처음에는별로 좋지 않을 수도 있습니다 예를 들어 무작위로 행동하기 때문입니다

그래서 우리는 아주 잘 놀지 않습니다 그러나 우리는 약간의 경험을 얻을 수 있습니다, 그리고 우리는 기본적으로 시간이 지남에 따라 향상 될 수 있습니다 우리는 견적을 개선하려고 노력합니다 우리가 향상시킬 때마다, 우리는 조금 더 나은 플레이를합니다 그런 다음 더 많은 데이터를 수집합니다

그리고 나서이 대리인이 열차 방법이있을거야 이 경험을 통해 갈 것입니다 시간이 지남에 따라 향상 될 것입니다 일반적으로 게임이나 환경과 같은 경우가 너무 느리므로, 우리는 시간의 한 게임을하고 싶지 않습니다 이 컴퓨터는 여러 게임을 동시에 실행할 수 있습니다

그래서 우리는 병렬 환경, 동시에 같은 게임의 여러 복사본을 재생할 수 있습니다 그래서 우리는 훨씬 더 빨리 학습 할 수 있습니다 이 경우에는 4 개의 게임을 동시에 진행합니다 우리는 방금 정의한 정책을 가지고 있습니다 그리고 동시에, 우리는 4 게임을 할 수 있습니다

동시에 이 경우 상담원이 시도합니다 동시에 4 개의 게임을 할 수 있습니다 그러면 우리는 더 많은 경험을 얻을 수 있습니다 훨씬 더 빨리 배울 수 있습니다

이전에 언급했듯이이 모든 데이터를 수집 한 곳 이 게임을하면,이 경우, 우리는 데이터를 버리고 싶지 않습니다 우리는 그것을 배우기 위해 사용할 수 있습니다 그래서 우리는이 재생 버퍼를 가질 것입니다 우리가 수집하는 모든 데이터를 유지하려고합니다 다른 게임처럼 다른 위치에 갈 것입니다

그래서 우리는 게임을 혼합하지 않습니다 그러나 우리는 단지 모든 데이터를 약간의 재생에 던질 것입니다 완충기 그리고 그 코드에, 그것은 간단합니다 우리는이 환경을 가지고 있습니다

이미 정의한 재생 버퍼를 삭제했습니다 그리고 나서 기본적으로 드라이버를 사용하고 나서 이보다 더 중요한 것은 재생 버퍼에 추가하십시오 게임을 할 때마다이 게임에서 행동을 취하십시오 재생 버퍼에 추가하십시오 나중에 에이전트는 모든 경험을 포함합니다

그리고 DQN이 우리의 정책 수단이기 때문에 – 이전 방법과 다른 것은 정책에 관한 것이 었습니다 이 경우 모든 데이터를 실제로 사용할 수 있습니다 모든 데이터를 보관하고 교육을 계속할 수 있습니다 모든 데이터에도 적용됩니다 우리는 당신이 버릴 필요가 없습니다

그리고 그것은 우리가 더 효율적으로 만들 수 있습니다 우리가 할 때 우리가 할 일은 데이터 및이 재생 버퍼라고하는, 우리는 샘플을 할 것입니다 우리는 다른 게임 세트를 샘플링 할 예정입니다 게임의 다른 부분 나는 말할 것이다

좋아, 게임을 다시 시도하자 이번에는 다른 결과를 가져올 수도 있습니다 같은 상황에 있다면 어떤 행동을 취할 것입니까? 어쩌면 당신은 왼쪽으로 움직이고, 공은 떨어질 것입니다 어쩌면 지금은 오른쪽으로 이동하고 싶을 것입니다 모델이 진행되는 방식입니다

기본적으로 연주 한 샘플 게임으로 학습하게됩니다 전에, 그리고 지금 당신의 핵심 기능을 개선하는 것입니다 네가 행동하는 방식을 바꾼다 자 이제 다시 이러한 것들을 다시합시다 조각이 많아 천천히 가자 그래서 우리는 우리의 Q 네트워크를 가지고 있습니다

이 경우 DQN 에이전트를 정의하는 데 사용합니다 우리는 재생 버퍼를 갖게 될 것입니다 우리가 가진 모든 데이터를 넣을거야 우리가 한 것을 모으고있어 우리는 기본적으로이 드라이버를 가지고 있습니다

게임에서 에이전트를 운전하십시오 그래서 기본적으로 운전할 것입니다 에이전트가 재생을하고 그것을 재생 버퍼에 추가합니다 그런 다음 충분한 데이터가 확보되면 우리는 기본적으로 그 데이터로 반복 할 수 있습니다 우리는 반복 할 수 있고, 일괄 처리를하고, 다른 샘플을 얻을 수 있습니다

그게 바로 우리가 요원을 양성하기 위해 할 일입니다 그래서 우리는 대체 데이터를 수집하고, 그리고 요원을 훈련 시켜라 그래서 우리가 모을 때마다 우리는 요원을 훈련시키고, 에이전트가 조금 더 좋아지면 더 많은 데이터를 수집하고 대체합니다 결국, 우리가하고 싶은 것은이 에이전트를 평가하는 것입니다 그래서 우리는 다음과 같은 방법을 가지고 있습니다

일부 측정 항목을 계산하려고합니다 예를 들어, 얼마나 오래 연주하고 있습니까? 게임, 얼마나 많은 점수를 받고, 우리가 비교하고 싶은 모든 것들 이러한 방법을 적극적으로 사용합니다 좋습니다이 환경에서 이러한 모든 측정 항목을 사용하는 것은 어떨까요? 에이전트 정책을 수립하고 여러 게임, 여러 에피소드 및 여러 가지 이것이 실제로 어떻게 생겼는지는 비슷한 것입니다 예를 들어, 브레이크 아웃 게임에서, 커브는 그렇게 보입니다

처음에는 점수를 얻지 않습니다 우리는 기둥을 움직이는 법을 모릅니다 공은 계속 떨어지고, 우리는 반복해서 게임을 잃는다 결국, 우리는 외륜을 움직여서 다른 방향으로, 공이 다시 튀어 나와, 그리고 그것은 벽돌을 치기 시작했다 그리고 약 4 ~ 5 백만 프레임, 그들은 다차원 적으로 이 게임을 실제로 어떻게하는지 배우십시오

그리고 약 4 ~ 5 백만 건을 볼 수 있습니다 프레임, 기본적으로 모델은 매우 좋은 점수를 얻습니다 약 100 점 이 모든 것들을 깨뜨리고 있습니다이 모든 것들은, 그리고 모든 벽돌을 치우십시오

우리는 또한 다른 게임의 그래프를 넣습니다 기본적으로 두 개의 다른 외륜 인 Pong과 같은 그 (것)들 사이 공을 튀기 위하여 Enduro, Qbert, 50 또는 60과 같은 또 다른 것이 있습니다 이 제품군의 게임 그리고 기본적으로 한 줄의 코드 만 변경할 수 있습니다

다른 게임을합니다 나는 그 세부 사항을 통과하지 않을 것이다, 다른 게임을하는 것이 간단하다는 것을 분명히하기 위해서입니다 이제, 그것을 유진으로 넘겨 주자 누가 Minitaur에 대해 더 이야기 할 것인가 고마워, 또

유진 브레도 : OK, 우리의 세 번째이자 마지막 예 Minitaur 로봇의 문제 그리고 종류는 첫 번째 슬라이드 중 하나로 돌아갑니다 Sergio가 대화의 시작 부분에 보여준, 도보 학습 그래서 실제 로봇이 있습니다 Minitaur라고합니다 그리고 여기서, 그것은 열심히 실패합니다

우리가 그 문제를 해결할 수 있는지 알아볼 것입니다 우리가 사용할 알고리즘은 Soft Actor Critic입니다 승인 다시 한번, 바닥에는 로봇의 이미지가 있습니다 그리고 당신은 그것이 약간 허약 해 보이는 것을 볼 수 있습니다

우리는 그것을 훈련시키고 싶어하고 우리는 피하려고합니다 우리의 정책이 정말로 그럴 수 없을 때부터 시작해서 있어 그래서 우리가 할 일은 PyBullet이라는 물리 시뮬레이터에서 모델을 만들려고합니다 그리고 그것은 당신이 정상에서 보는 것입니다 그리고 일단 우리가 그것을 훈련하면, 우리는 해당 버전에 대한 정책에 대한 확신, 로봇으로 다시 전송할 것입니다

몇 가지 최종 미세 조정을 수행하십시오 그리고 여기서 우리는 훈련과 시뮬레이션에 초점을 맞출 것입니다 그래서 나는 수학적인 세부 사항들에 빠지지 않을 것이다 연예인 평론가의 이야기이지만, 여기에는 몇 가지 근본적인 측면이 있습니다 그 알고리즘의 하나는 이산 액션과 연속 액션을 모두 처리 할 수 ​​있다는 것입니다

공백 여기서는 일부 모터를 제어 할 것입니다 및 액추에이터가 포함되어있어 상당히 지속적인 작업 공간입니다 데이터 효율성이 뛰어나므로이 모든 힘든 데이터 당신이 시뮬레이션에서 뛰거나 로봇에서 가져온 것, 당신이 훈련을하는 동안 그것을 버릴 필요가 없습니다 당신은 재교육을 위해 그것을 주변에서 유지할 수 있습니다 또한 훈련은 안정적입니다

다른 알고리즘과 비교하여, 이 것은 훈련 중에 발산 할 가능성이 적습니다 그리고 마지막으로, 기본적인 측면 중 하나 그것은 Soft Actor Critic입니다 배우 뉴럴 네트워크와 비평 신경망을 결합 훈련을 가속화하고 안정적으로 유지합니다 다시 Minitaur, 당신은 기본적으로 할 수 있습니다 PyBullet의 pip 설치를 수행하면 Minitaur를 무료로 받으십시오

TF-Agents와 함께 PyBullet 함대를 사용하여 적재 할 수 있습니다 그리고 당신이이 환경을보아야한다면, 로봇에 약 28 개의 센서가 있음을 알 수 있습니다 그 반환 부동 소수점 값, 구성의 다른 측면 당신은, 힘, 속도, 그런 것들입니다 그리고 그 동작에는 로봇에 8 개의 액추에이터가 있습니다 그것은 힘을 적용 할 수 있습니다 – 양수 또는 음수, 1에서 1- 8 개의 액추에이터 각각에 대해 이제는 여기에 전체 설정을 함께 가져 오는 것이 있습니다

이 시뮬레이션 중 네 가지를로드 할 수 있습니다 병렬로 실행하고 시도해보십시오 당신이 사용하고있는 코스의 수를 최대화하기 위해 데이터를 수집 할 때 이를 위해 우리는 병렬 Py 환경을 제공합니다 세르지오는 TF Py 환경에 싸여있다 그리고 이제, 우리는 사업에 착수합니다

문제에 대한 신경 네트워크 아키텍처를 설정하는 것 먼저 액터 네트워크를 만듭니다 그래서 배우 네트워크가 할 일은 무엇입니까? 이 센서의 관측을 받아 들일 것입니까? 벡터이며 액추에이터 값의 샘플을 제한 할 것입니다 그리고 그 샘플들은 무작위로 추출됩니다 이 경우, 가우시안 분포 또는 정규 분포

결과적으로이 행동 분배 네트워크 프로젝션 네트워크라고 불리는 것을 사용합니다 그리고 우리는 다수의 표준 프로젝션 네트워크를 제공합니다 이것은 가우시안 분포로부터 샘플을 방출합니다 그리고 그 안에 들어있는 신경망 하이퍼 파라미터를 설정하려고합니다 그 분포의

이제 오른쪽 상단에있는 평론가 네트워크는 현재 센서의 조합을 취할 것입니다 관찰과 행동 샘플 배우 네트워크가 방출 된 것입니다 예상 수익을 추정 할 것입니다 얼마나 오래,이 행동이 주어진다면, 내 로봇이 계속 머무를거야? 얼마나 잘 갈급 할 것인가? 그리고 그것은 궤적으로부터 훈련 될 것입니다 수집하는 보상에서 그리고 그것은 배우를 훈련시키는 것을 도울 것입니다

따라서 이러한 네트워크와 이러한 사양을 전달합니다 Soft Actor Critic 에이전트에게 보내면됩니다 그것의 수집 방침을보십시오 그리고 그것이 당신이가는 일입니다 데이터 수집을 시작하기 위해 운전자를 전달하는 것 환경과 상호 작용합니다

그래서 나는 실제로하는 세부 사항에 가지 않을 것입니다 그것은 문자 적으로 깊은 곳과 동일하기 때문에 이전에 Q- 학습 사례 재생 버퍼가 필요하고 드라이버를 사용합니다 너는 같은 동작을 반복한다 내가 보여줄 것은 당신이 TensorBoard에서 볼 것으로 예상해야합니다

시뮬레이션을 진행하는 동안 상단에 평균 에피소드 길이가 표시됩니다 환경의 수의 함수로서의 평균 수익률 네가 취한 단계들, 시간 단계의 수 하단에는 동일한 것을 볼 수 있습니다 하지만 x 축에서 에피소드의 수를 볼 수 있습니다 네가 겪은 일

그리고 당신이 볼 수있는 것은 약 13,000 후에, 14,000 개의 시뮬레이션 에피소드, 우리는 실제로 배우기 시작했습니다 걷고 걷는 법 에피소드 길이가 길어집니다 넘어지기까지 더 오래 걸립니다 그리고 평균 수익도 올라갑니다

그것은 우리가 얼마나 오래 머물러 있느냐의 함수이기도합니다 그리고 얼마나 잘 우리가 질주 할 수 있는지 다시 한번 이것이 파일럿 시뮬레이션 인 경우, Minitaur의 렌더링은, 처음에는, 정책이 임의의 값을 방출 할 때, 신경 네트워크는 임의의 값을 방출합니다 무작위로 초기화됩니다 간신히 머무를 수 있습니다

기본적으로 넘어집니다 훈련 도중에, 그것은 일어날 수있게되기 시작, 어쩌면 몇 걸음 만 내딛는다면, 쓰러지 다 외부의 힘을 적용하면 넘어 질 것입니다 약 16,000 번의 반복으로, 그것은 꽤 강력한 정책입니다 그리고 서있을 수 있습니다, 그것은 질주 할 수 있습니다

그것을 뒤집어 쓰는 외력이 있다면, 그것은 다시 일어나서 계속 할 수있을 것입니다 그리고 일단 훈련 된 정책을 가지고 있다면, 당신은 그것을 옮기고, 그것을 안전한 모델로 수출 할 수 있고, 실제 로봇에 올려 놓은 다음 미세 조정을 시작하십시오 방법 일단 미세 조정하면 꽤 깔끔한 로봇을가집니다 내 머리 속에, 내가이 비디오를 볼 때, 나는 "Chariots of Fire"주제곡을 생각해

나는 당신이 그것을 본 적이 있는지 알지 못하지만, 꽤 멋지다 이제는 세르지오에게 다시 돌려 드리겠습니다 몇 가지 최종 단어를 제공합니다 세르지오 구아 달라 : 다시 한번 고마워 너무 멋지다, 안돼? 처음부터 어떻게 할 수 있어요? 걷고 자연스럽게 시뮬레이션을하는 법을 배웁니다

그런 다음 실제 로봇으로 전송할 수 있습니다 진짜 로봇으로 작동하게하십시오 이것이 TF-Agents의 목표 중 일부입니다 우리는 우리의 역할을 매우 쉽게하고 싶습니다 코드를 다운로드하고 거기서 스캔 할 수 있습니다

GitHub에 가서 연주 해보십시오 우리는 이미 많은 다른 환경을 가지고 있습니다 우리가 오늘 말한 것 이상 더 많은 것이 있습니다 그래서 우리는 세 가지 예를 다루었지만 거기에 갈 수 있습니다, 다른 많은 환경이 있습니다

우리는 Unity ML-Agents 곧 올 수도 있습니다 그래서 당신도 Unity와 상호 작용할 수 있습니다 렌더링합니다 어쩌면 너의 일부가 실제로 자신의 환경에 기여하는 것이 흥미 롭습니다 너 자신의 문제

우리는 또한 증명 요청을 기꺼이 받아들입니다 모든 것에 대한 기여 당신이 말하는 사람들을 위해서, 좋아요, 그 게임은 정말 좋습니다 게임은 좋아 보이지만 내 문제가 있습니다 나는 무엇을해야합니까? 그럼 처음으로 돌아가 봅시다

우리는 당신의 환경을 정의 할 수 있다고 이야기합니다 자신 만의 작업을 정의 할 수 있습니다 이것은 당신이 따라야 할 주요한 부분입니다 따라야하는 API입니다 TF-Agents에게 당신의 업무 나 문제를 가져 가야합니다

관측치의 스펙을 정의하고, 내가 볼 수있는 것처럼? 이미지를 볼 수 있습니까, 숫자를 볼 수 있습니까? 그게 무슨 뜻입니까? 사용 가능한 조치는 무엇입니까? 두 가지 옵션, 세 가지 옵션, 10 가지 옵션이 있습니까? 내가 가지고있는 가능성은 무엇입니까? 그리고 리셋 방법은 우리가 말했듯이, 우리가 배우는 동안 계속 노력해야합니다 다시 초기화하고 다시 시작해야합니다 그런 다음 중지 기능이 있습니다 내가 너에게 행동을한다면, 어떻게 될까? 어떻게 환경, 어떻게 작업이 진화 할 것인가? 이 상태는 어떻게 바뀔 것입니까? 그리고 당신은 저에게 보상을 말해야합니다 잘 지내고 있습니까? 나는 올바른 방향으로 가고있다

아니면 잘못된 방향으로 가고 있습니까? 그래서 나는 그것으로부터 배울 수 있습니다 이것이 코드의 주요 부분입니다 자신의 문제를 해결하기 위해 구현해야 할 필요가 있습니다 또한 우리는 단지 세 가지 알고리즘에 대해서만 이야기했습니다 하지만 우리는 코드 기반에서 더 많은 것을 가지고 있습니다

여기에서 볼 수 있습니다 더 많은 것이 있습니다 그래서 다양한 알고리즘이 다양합니다 당신이 할 수있는 다른 가닥을 가지고있다 다른 문제에 적용하십시오

서로 다른 조합을 시도해 볼 수 있습니다 어떤 것이 실제로 당신의 문제에 효과가 있는지보십시오 그리고 우리는 다른 사람들을 위해 기부를하고 있습니다 누가 이런 말을하는지, 오, 나는이 알고리즘을 가지고있다 나는 이것을 구현하고 싶다

나는이 새로운 생각을 가지고있다 알고리즘으로 다른 문제를 해결할 수도 있습니다 게다가, 우리는이 게임뿐만 아니라 이들을 적용합니다 Google에서 로봇에 적용합니다 이 정말로 복잡한 문제에서 우리는 여러 대의 로봇이 물건을 잡는 법을 배우려고한다

다른 곳으로 이동하는 것 그래서이 경우 우리는이 모든 로봇을 시도하고 있습니다 처음에는 파악하고 실패합니다 그리고 결국, 그들은 배웠습니다, 오, 대상은 어디 있습니까? 손을 어떻게 움직일 수 있습니까? 적절한 장소에서 그리퍼를 어떻게 닫을 수 있습니까? 그리고 이제 어떻게 이해할 수 있습니까? 그리고 이것은 매우 복잡한 작업입니다 강화 된 학습으로 해결하십시오

또한 다른 많은 문제를 해결할 수도 있습니다 YouTube 추천과 같은 간단한 추천 시스템의 경우, Google Play, 내비게이션, 뉴스 그건 당신이 기본적으로 할 수있는 많은 다른 문제들입니다 말하자면, 나는 내 목표, 장기적인 가치를 위해 최적화하고 싶다 짧은 기간뿐만 아니라 장기적인 가치와도 같습니다 그리고 그 때 정말 좋습니다

당신은 장기간 최적화하고 싶다 가치뿐만 아니라 단기 마지막으로 많은 노력을 기울였습니다 이 코드를 사용 가능하게 만들고 그것은 많은 사람들에게 유용합니다 그러나 Google에서는 이러한 AI 원칙도 정의했습니다

그래서 우리가이 코드를 모두 개발했을 때, 우리는이 원칙들을 따른다 우리는 그것이 이익을 얻는 것에 사용되도록하고 싶습니다 불공정 한 편견을 강화시키지 않는 사회, 차별하지 않는다 처음에는 안전, 개인 정보 보호 테스트 그것은 책임이있다 우리는 매우 높은 기준을 지킵니다

그리고 우리는 또한 모든 사람들이 이 코드를 사용하는 사람도 이러한 원칙을 채택합니다 더 나아 지려고 노력합니다 그리고 우리가 추구하고자하는 많은 응용 프로그램이 있습니다 우리는 해를 끼치는 데 이걸 사용하고 싶지 않아 우리가 아는이 모든 손상된 것들이 일어날 것입니다

마지막으로, 전 팀에 감사드립니다 너도 알다시피, 유진과 나 뿐만이 아니야, 우린 이것을 만들었다 뒤에 다른 사람들이 있습니다 이들은 여기에있는 TF 요원입니다 많은 기여자가 있습니다

코드에 기여했습니다 모든 일을 자랑스럽게 생각한다 이 일을 만들어서 이것은 오픈 소스가 가능하고 모든 사람들이 이용할 수 있습니다 우리가 전에 말했듯이, 우리는 여러분 모두를 원합니다 GitHub에서 우리와 함께하십시오

웹 페이지로 이동하여 다운로드 한 다음 재생을 시작하십시오 정말 좋은 곳은 노트북 붕괴입니다 그리고 OK, REINFORCE 예제를 시험해보고 싶습니다 나는 DQN이나 Soft Actor Critic을 시도하고 싶다 Google 노트를 재생할 수있는 노트가 있습니다

이 모든 예들이 당신을 위해 달릴 것입니다 또한 극 요청 문제가 있습니다 환영합니다 그래서 우리는 당신이 그들의 지역 사회의 일부가되기를 바랍니다 이 점을 훨씬 좋게 만드는 데 기여하십시오

그리고 우리는 또한 찾고 있습니다 새로운 애플리케이션의 경우, 여러분 모두 이러한 새로운 도구로 할 수 있습니다 이것을 적용 할 수있는 많은 새로운 문제가 있습니다 우리는 앞으로 그것을 고대하고 있습니다 정말 고마워요

주위를 보길 바랍니다 [박수 갈채] [음악 재생]

ML Kit x Material Design: Design Patterns for Mobile Machine Learning (Google I/O'19)

[음악 재생] 레이첼 : 하이, 청중 안녕하세요

실시간 스트림입니다 저는 Rachel, Material Design의 크리에이티브 디렉터입니다 Kunal과 Phil, 팀의 시니어 디자이너입니다 왜 우리가이 일을하고 있는지부터 시작합시다 왜 우리는 이것에 대해 이야기하고 있습니까? 왜 디자인 시스템 팀이 관련되어 있습니까? 기계 학습

좋아, 익숙하지 않은 사람들을위한 간단한 입문서를 만들어 보자 기계 학습 나는 ML에 대해 이야기하기 위해 고양이를 사용하여 나를 유머러스하게 사랑합니다 그렇다면 기계 학습이란 무엇입니까? 기본적으로 컴퓨터에 능력을 부여합니다 예측을하고 문제를 해결하는 것 특별한 지시없이

그래서 정말로 복잡한 패턴을 식별함으로써, 기계 학습은 다양성을 위해 사용될 수있다 제품 경험 채팅에서 음악, 응답 식별 앱, 이미지 식별 그리고 어제 많은 사람들이 보았던 제품들이, ML Kit 및 Firebase와 같이이 기술을 실제로 만들어야합니다 모든 기술 세트의 개발자가 사용할 수 있습니다 그러나 문제는이 기술이 효과적이지 않다는 것입니다

사용자가 혜택을 이해할 수없는 경우 이것은 원래 데모 중 하나의 예입니다 ML 키트 밖 ML Kit의 모든 사용자가 청중에있는 경우 ML 키트 어떤 물건 탐지 패턴을 보았습니다 이제는 개를 어느 정도 데리러 간다

이 경험이 사용자에게 얼마나 큰 도움이되는지 프론트 엔드에서 이것을 볼 수 있을까요? 따라서 재료 디자인의 목표는 이와 같은 기술을 활용하는 설계 시스템을 구축한다 아름답고 사용하기 쉬운 인터페이스로 그리고이 잘 설계된 인터페이스는 사람들에게 유용한 것입니다 그러나 잘 설계된 인터페이스는 또한 기술을보다 신속하게 구현하고 잠재 고객과 사용자가 인터페이스를 이해합니다 그리고 그것은 당신의 사용자를 위해 작동 할 것입니다 디자인 시스템에 관한 가장 중요한 것들 중 하나 기계 학습은 실제로 설계 솔루션입니다

일은 계획대로 진행되지 않습니다 기계 학습은 유동적이고 예측할 수 없기 때문에, 사용자에 의해 보강 된 이러한 상황 별 설계 솔루션 기능적 제품 경험을 고려해야합니다 따라서 단일 디자인 패턴이 없습니다 그리고 많은 사람들이 알고있는 것처럼, 무수히 많은 것을 포괄하는 그 기계 학습은 할 수 있습니다 이것은 많은 기능의 예입니다

기계 학습은 힘을 실어 줄 수 있습니다 우리는 가장 보편적 인 기계 학습을 선택했습니다 전원 패턴 시각적 검색 패턴 그게 무슨 뜻 이죠? 실제로 그것은 카메라 사용을 의미합니다 보다 일반적인 텍스트 입력 대신 세계 검색 옵션

쿠 날 (Kunal)과 필 (Phil)은 곧 이러한 패턴에 대해 이야기 할 것입니다 그러나 우리가 시작하기 전에, 나는 전술적 인 몇 조각을 언급하고 싶다 이 지침을보다 이해하기 쉽게 만들 수 있습니다 우리가 제공하는 것은 무엇입니까? 우리는 세 가지 시각적 검색 패턴 기사를 제공하고 있습니다 가이드 라인 인 material

io에 재료 디자인을위한 사이트 ML Kit에서 제공하는 훌륭한 데모 앱도 있습니다 GitHub의 머티리얼 디자인과 관련된 팀 다운로드 할 수있는 패턴에 따라 다릅니다 아디다스의 멋진 데모도 있습니다 이케아, Flutter (플러 터)는 나중에 조금씩 이야기하겠습니다

그리고 그것으로, 나는 Kunal에 그것을 건네 주겠다 패턴에 대해 이야기하기 시작했습니다 좋아 고마워, 레이첼 레이첼이 언급했듯이 2 개의 ML Kit API에 집중하고 세 가지 패턴을 통해

우리가 물체 감지 작업을하고있을 때 추적 API를 사용하여 사용자 경험에 대한 사용자 경험의 차이 이 흐름을 겪을 것입니다 API의 스트리밍 모드를 사용하면, 라이브 카메라 피드 또는 정적 모드를 사용하는 제공된 이미지를 사용합니다 그래서 우리는 하나의 API를 두 개의 분리 된 디자인으로 분리했습니다 사용중인 모드에 기반한 가이드 라인 그리고 우리가 이러한 흐름을 겪으면서, 머티리얼 디자인에 익숙한 분들은 친숙한 여러 구성 요소가 표시됩니다

최고의 앱 바, 버튼, 대화, 또한 우리가 추가 한 몇 가지 새로운 요소가 있습니다 레티클 및 객체 마커와 같은 이러한 시각적 검색을위한 경험을 연장하기 위해 패턴, 또한 작년 발표 된 내용을 바탕으로 소재 테마 우리는 나머지 자료와 마찬가지로 디자인, 이러한 새로운 시각적 검색 경험과 요소 우리가 추가 한 것은 모양에 맞게 사용자 정의 할 수 있습니다 그리고 귀하의 신청서에 대한 느낌 여기에 보이는 것은 스티커 시트입니다

우리의 물질 연구 신사를위한 시각적 인 검색 요소의 그리고 우리는 이것을 우리의 모든 흐름에서 하나의 예로서 사용할 것입니다 이제 우리는 첫 번째 패턴에 대해서 이야기 할 것입니다 걷는 것, 이것은 목표 다 라이브 카메라에서의 탐지 당신은 묻고 있을지도 모른다, 나는 물체 탐지에 의하여 무엇을 의미합니까? 라이브 카메라는 무엇을 의미합니까? 왜 내가이 용어들에 관심을 가져야합니까? 따라서 객체 해부는 실제로 첫 번째 단계입니다

Rachel이 이야기하고있는 시각적 인 여정의 여정 이미지로 검색 할 때의 이점, 또는 시각적으로, 사용자가 무엇을 입력해야할지 모른다면 말하자면 대신 이미지를 사용할 수 있습니다 그들을 위해 그 일을 할 수 있습니다 또한 ML 키트 객체의 스트리밍 모드 탐지 및 추적 API를 사용하면이 작업을 수행 할 수 있습니다 수동으로 사진을 찍지 않아도됩니다

그냥 개체를 지적하고 그것에 대해 배웁니다 이 흐름에 대한 가이드 라인이 진행 중입니다 사용자의 단일 눈에 띄는 객체 추적하기 카메라 그렇다면 이것은 어떻게 기술적으로 작동합니까? 사용자는 기기에서 객체를 감지 할 수 있습니다 ML Kits 객체 탐지 ​​및 트래핑 API를 사용합니다

API는 카메라 프레임을 자르기 만합니다 검출 된 물체의 이미지 영역 그것을 당신 자신의 기계로 보내라 분류를위한 학습 모델 및 더 많은 정보 사용 가능한 결과가 나오면 사용자에게 다시 전송됩니다 우리가 이러한 경험을 설계 할 생각을 할 때, 우리는 사용자 경험을 분리했다

이 세 단계로 감지, 인식 및 의사 소통 각각을 자세히 살펴 보겠습니다 그래서 감지 단계에서 이것은 사용자가 앱에서 시각적 검색 기능을 열었습니다 앱이 개체를 찾기 시작했습니다 이것은 식물에 대해 더 많이 배울 수 있습니다

정원, 박물관의 물건, 또는 신발 그들이 구매하기를 원한다 처음 사용자 인 경우 이 기능이 어떻게 작동하는지 설명하십시오 많은 사용자가 스마트 폰 카메라 사용에 익숙합니다 사진을 찍기 위해 하지만 리모콘 같은 종류가 아닙니다

주위에있는 물건에 대해 배울 수 있습니다 따라서 우리는 가볍고 빠른 것을 권합니다 1 스크린 온보드 탑승 경험 사용자가 할 수있는 일, 어떤 종류의 일들에 초점을 맞 춥니 다 그들은 탐지하고, 애니메이션을 사용할 수있다 장치를 움직여 실제로 물건을 식별하는 것을 보여줍니다

필요할 수 있습니다 그 온 – 탑승 과정 후에, 그들이 경험에있을 때, 우리는 앱이 찾고 있다고 의사 소통하기를 원한다 카메라의 객체에 대한 앞서 언급했듯이 객체 감지에 대한 Google의 가이드 라인 ML 키트의 눈에 띄는 설정을 사용하여 라이브 카메라 커버 API 어느 것이 가장 큰 물체를 찾을 것인가? 카메라 중앙에 있습니다 그래서 우리는 그 지역에 사용자들의주의를 끌기를 원합니다

이것이 그들이 검색해야하는 곳임을 알리십시오 이 새로운 시각적 요소를 사용하여 작업을 수행합니다 우리가 레티클이라고 부르는 것 화면 중앙에주의를 환기시키는 애니메이션입니다 사용자에게 그것이 적극적으로 있다는 것을 알리도록 항목을 찾고 있습니다

또한, 우리는 레티클 화면 하단의 툴팁으로 사용자에게 카메라를 객체로 향하게합니다 사용자가 물체를 감지하는 데 어려움이있을 수 있습니다 주변 환경의 조건에 따라 아마도 유형의 객체가 없을 것입니다 해당 환경에서 앱에 의해 인식됩니다 어쩌면 너무 밝거나 어둡거나 물체가 너무 가깝습니다

함께 응용 프로그램에 대한 정확한 읽기 개체를 얻을 환경에서 우리가 권장하는 것은 탐지 시간을 설정하는 것입니다 밖에있다 그래서 사용자가 뭔가를 감지하지 못했다면 일정한 시간이 지난 후에는 배너를 통해 오류 메시지를 표시 할 수 있습니다 문제 해결에 도움을 청합니다

그들이 가지고 있을지도 모른다 경험의 두 번째 단계에서, 사용자가 객체를 발견하면 그들이 원하는 앱 검색 객체를 감지하고 시작해야합니다 그들을위한 시각적 인 검색 우리가 카메라의 물체를 인식 할 때, 우리는 사용자가 우리가 테두리 상자에 테두리를 추가하여 우리가 ML Kit API에서 돌아 오는 좌표 여기서 프레임이 직사각형임을 알 수 있습니다

이 좌표는 당신이 가진 좌표와 일치합니다 API에서 돌아갈 예정이며 사용자는 이것이 자르기를 알게됩니다 조금 더 큰 지역일지도 모릅니다 표시되는 개체보다 그러나 우리가 물체를 발견하면, 우리는 반드시 검색을 즉시 시작하고 싶지 않습니다 사용자는 물건을 찾기 위해 주변을 움직일 수 있습니다

우리는 수색을 시작하고 싶지 않다 우리가 보는 모든 단일성을 위해 그것은 그들의 기대와 부합하지 않을 것이다 귀하의 앱이하기에는 매우 비쌉니다 대신, 우리는 약간의 빛 신호가 필요하다

사용자가 실제로 있는지 확인하려면 이 개체에 관심이 있습니다 그들은 그것을 찾고 싶어한다 우리가하는 방식은 그들은 카메라를 잠시 동안 계속 유지해야합니다 해당 객체 위로 마우스를 가져 가면 잠시 기다려주십시오 그들이 그것을 찾는 것에 관심이 있다는 것을 알아라

시간의 그 양, 우리가 검색을 시작하기 전에 기다리는, 자신의 응용 프로그램에서 미리 설정할 수 있습니다 그래서 그것은 사용자 정의 할 수 있습니다 우리는 그것을 사용자에게 전달하고자합니다 그 센터 내에 로더를 포함시킴으로써 요소, 레티클, 그래서 그들은 그들이 얼마나 오래 있는지 알고 있습니다 자신의 장치를 계속 유지해야합니다

일단 그들이 원하는 것을 나타내면 우리는이 객체를 검색합니다 우리가 할 첫 번째 일은 라이브 카메라 피드를 일시 정지합니다 이것은 사용자에게 강한 신호입니다 이제 기기를 이동할 수 있습니다 잃지 않고 편안한 자세로 개체의 트랙

그리고 우리가 할 두 번째 일은 레티클을 제거하는 것입니다 불확정 진도로 바꿉니다 검색을 시작했음을 알리는 표시기 이 항목에 대한 결과를 찾고 있습니다 이 단계에서, 잘못 될 수있는 한가지, 또는 당신이 시선을 유지하고 싶다면, 사용자가 객체와 얼마나 멀리 떨어져 있는지입니다 따라서 거리에서 물체가 감지되는 동안, 탐지 된 객체의 최소 크기를 설정할 수 있습니다

검색을 시작하려면 그리고 이것은 이미지가 결과를 찾기 위해 자신의 모델에서 사용하게 될 것입니다 카메라보기의 내용을 기반으로합니다 따라서 카메라에서 물체가 매우 작 으면, 세부 정보가 누락되었을 수 있습니다 해당 항목을 식별하는 데 도움이 될 것입니다 그래서 우리는 당신을 위해 부분 테두리 스타일을 포함 시켰습니다

탐지 된 객체에 사용하려면, 어쩌면 너무 멀리 떨어져있을 수도 있습니다 그리고 레티클 스타일을 알려주고 변경하는 방법에 대한 팁 사용자에게 그들이 필요하다는 것을 알리는 우리가 실제로 이 객체를 검색하십시오 이 경험의 마지막 단계에서, 앱에 해당 객체에 대한 결과가 있음 사용자에게 다시 보낼 준비가되었습니다 그리고 사용자는 집중할 수 있어야합니다 그 (것)들에 그들의 업무를 완료하기 위하여

우리가하고 싶은 첫 번째 일은 사용법입니다 검출 된 대상의 이미지의 썸네일 결과 공간 위에 표시하십시오 이것은 두 가지 중요한 기능을 수행합니다 하나는 인식 단계 및 통신 단계 사용자가 검색 할 내용을 확인합니다

결과에 대한 정보를 제공합니다 어떤 정보와도 쉽게 비교할 수 있습니다 당신이 그들을 돌려주고 있다고 두 번째로 우리는 모달 바닥을 사용하고 있습니다 결과를 제시하는 시트

그리고 이것은 몇 가지 장점이 있습니다 하나의 모달 바닥 시트에는 시트를 나머지 앱 UI와 분리합니다 스크림을 불렀다 이 스크림은 뒤에 카메라보기를 어둡게하고 가져온다 결과에 더 중점을 둔다

또한 사용자가 카메라로 돌아갈 수있는 방법을 제공합니다 그것을 두드려서 사용자는 카메라로 돌아갈 수도 있습니다 헤더를 두드려 다른 검색을 수행한다 결과 시트의 결과의 레이아웃면에서, 앱이 필요로하는 것을 기반으로하고 싶습니다

특정 유형의 콘텐츠는 무엇입니까? 사용자에게 선물할까요? 몇 개의 결과가 반환됩니까? 결과에 대한 귀하의 신뢰는 무엇입니까? 여러 검색 결과를 반환하는 경우 시각적 검색을 기반으로 한 사용자에게 목록이나 표를 사용하는 것이 좋습니다 형식으로 표시합니다 그리고 만약 당신이 한 가지 결과 만 가지고 있다면, 또는 당신이 홍보하기를 원하는 높은 자신감의 결과, 레이아웃을 필요에 맞게 사용자 정의 할 수 있습니다 결과가 대부분 자신감이 낮 으면, 당신의 모델이 그것은 그 대상과 매우 흡사하다고 생각합니다 발견되었습니다

그것은 그 예언에 대해 많은 믿음을 가지고 있지 않습니다 사용자가 다시 검색 할 수 있음을 알립니다 당신은 또한 당신이 결과에 대한 신뢰도 임계 값 설정 당신은 사용자에게 프리젠 테이션을하고 있습니다 결과가 일종의 경계선이라면, 사용자가 다시 검색 할 수 있음을 알립니다 그리고 무엇에 대한 도움말을 제공 할 수 있습니다

결과가 좋지 않은 경우 개선 할 수 있습니다 그들의 기대에 부응한다 결과가 없으면 사용자가 너무 멀기 때문일 수 있습니다 물체에서 멀어지면 그것을 포착하지 못했다 기대했던 바로 그 각도에서, 또는 환경이 대상의 밝기 또는 어둡기에 영향을 미쳤습니다

나타났다 메시지를 보낼 수있는 방법을 찾고 싶습니다 이러한 오류는 사용자를 안내하고 자세한 내용은 도움말을 참조하십시오 이러한 문제가 많이 발생하지 않습니다 네가 발견하거나 도울 수있는 것들이다

앱에있는 사용자이며 사물 그들은 그들의 환경에 관하여 변화 할 필요가있을 것입니다 어쩌면 카메라 플래시를 켜는 것일 수도 있습니다 그 개체의 밝기를 높이려면 감지되고있다 또는 촬영 위치를 바꿔 촬영 해보십시오 다른 각도에서 항목

그래서 나는 우리가 가고 있다고 언급했다 이러한 경험을 사용자 정의 할 수있는 방법을 살펴보십시오 그럼이 라이브 객체 탐지 ​​방법을 살펴 보겠습니다 흐름은 앱과 일치하도록 맞춤 설정할 수 있습니다 그래서 우리는 우리의 물질 인 신전을 사용할 것입니다

소매 앱을 연구하십시오 아주 작고 깨끗한 미적 감각이 있습니다 핵심 요소에 대해 이러한 각진 모서리를 사용합니다 신사에있는 기하학적 로고를 기반으로합니다 그리고이 라이트 핑크 브랜드 컬러가 있습니다

그래서 시각적 검색에 어떻게 적용되는지 생각하고 있습니다 경험 우리는 이것이 끊임없이 느끼기를 원했습니다 우리는 이들을 나머지 응용 프로그램과 혼합하기를 원합니다 컬러 타이포그래피 및 모양에서 핵심 요소를 전달합니다

우리가 새로운 요소 중 일부를 면밀히 살펴보면 레티클과 같이 여기에 우리의 기본 흐름에서 소개하십시오 이것은 매우 둥근 모양입니다 그러나 Shrine에는 앱에 대한 기하학적 접근 방식이 있기 때문에 그리고 중요한 요소에, 우리는 다이아몬드 모양으로 갔다 대신 브랜드와 적합성을 반영하기 위해 앱의 나머지 핵심 요소와 함께 우리의 툴팁은베이스 라인 형태로 Rubato와 검은 색 컨테이너를 사용합니다 이제 Shrines 글꼴 인 Rubic을 사용합니다

밝은 분홍색 배경 색상은 나머지 응용 프로그램에서 사용됩니다 이제 우리가 어떻게 탐지했는지 살펴 보았습니다 라이브 카메라의 객체가 작동하고, 앱으로 사용자 정의 할 수있는 방법, Phil에게 넘기겠다 정적 이미지에서 이것이 어떻게 작동하는지 이야기 해보십시오 [박수 갈채] PHILLIPE CAO : 와우

네가 좋아한다면, 다음에 무슨 일이 일어날 지 기다릴 때까지 기다려 고마워, 쿠날 따라서 물체 감지 및 정적 이미지 사용자가 기기에서 이미지를 선택할 수 있습니다 그리고 내부에있는 최대 5 개의 물체를 탐지합니다 그 이미지의

이 기능은 사용자가 캡처 한 이미지를 분석하려고합니다 전에 또는 뭔가를 감지 할 수없는 경우 바로 그 자리에 이것이 통합 될 수있는 방법 중 하나입니다 검색 흐름에 있습니다

우리가이 예제에서 보는 것과 같이 사용자가 사진에서 식물을 찾고있는 곳 그들이 취한 것 기술 흐름을 세분화 해 봅시다 이 경험 이것은 라이브 카메라 흐름과 매우 유사합니다 Kunal이 이전에 공유했던 것, 바로 여기, 우리의 근원은 다른

라이브 카메라 대신 정적 이미지를 사용하고 있습니다 먼저 개체가 장치에서 감지됩니다 ML Kit을 사용합니다 그런 다음 개체가 자신의 모델로 분류됩니다 마지막으로 결과가 다시 사용자에게 표시됩니다

이제 이전과 마찬가지로이 흐름을 분할합니다 세 가지 단계로 구분됩니다 그리고 이것들은 아마도 당신에게 익숙 할 것입니다 그래서 여기에 Input이 있습니다 여기서 사용자 검색 할 이미지를 선택합니다

우리가 사물을 기다리는 곳을 인식하라 감지되고 식별되어야한다 그리고 의사 소통을하고 결과를 검토합니다 작업을 완료하십시오 따라서 입력 단계에서 우리는 흐름을 소개합니다

사용자에게 제공하고 검색 할 이미지를 제공하도록 요청합니다 사용자가 처음으로 피쳐를 열면, 어떻게 작동하는지 설명하는 것이 중요하므로 더 나은 것이 있습니다 성공적인 검색 기회 그리고 이것을하는 가장 좋은 방법은, 다시, 간단한 온보드 화면이 있습니다 따라서 Kunal이 앞서 언급 한 것처럼, 이것을 한 화면으로 제한하고 있습니다

간단한 설명 제공 이 기능의 작동 방식 여기서 우리가하지 않는 것이 중요합니다 가능한 모든 오류를 극복하기 위해이 순간을 사용하고 싶다 사용자가 만날 수있는 대신 사용자 상호 작용에 초점을 맞추고 있습니다 사용자가 얻으려면 무엇이 필요합니까? 그들이 원하는 정보에? 그리고 우리가 온보드 스크린을 통과하면 화상 선택 화면에, 운영 체제 사용을 권장합니다

네이티브 선택 화면을 통해 사용자가 이미 이미지를 선택하는 방법에 익숙하다 이것이 입력 단계입니다 이제 인식 단계로 넘어갑니다 전환 상태에 들어가는 곳 사용자가 이미지의 객체를 기다리는 동안 감지되고 식별되어야한다 이 단계에서는 불확정 로더를 사용하고 있습니다

사용자와 명확하게 의사 소통하기위한 툴팁과 짝을 이룬다 짧은 지연이 예상됩니다 또한 반투명 스크림을 사용하고 있습니다 이미지 위에 그래서 이것은 우리를 위해 두 가지 일을합니다

첫 번째는 이미지를 약간 어둡게하는 데 도움이된다는 것입니다 사용자가 이미지를 잘 알지 못한다 아직 상호 작용할 준비가되었습니다 두 번째는 적절한 대비를 제공하는 데 도움이된다는 것입니다 로더와 툴팁이 맨 위에 표시 될 수 있습니다

때로는 특정 요소가 이미지가 물체 감지에 적합한 지 여부에 영향을줍니다 이들은 화질이 좋지 않은 것, 이미지의 대상이 너무 작고 콘트라스트가 낮습니다 개체와 그것의 배경 사이, 또는 인식 할 수없는 각도에서 보여지는 개체 다른 때에는 이미지 자체와 함께 있지 않을 수도 있습니다 사용자가 네트워크에 대한 연결을 끊었다는 것 등이 있습니다

따라서 사용자가 오류가 발생하는 경우, 그 (것)들을 예언하는 것이 중요하다, 설명함으로써 원활한 경험을 돕기 위해 배너의 문제 사용자에게 새로운 이미지를 시도 할 수있는 기회를 제공합니다 사용자가 자세히 알아볼 수있는 방법을 포함 할 수도 있습니다 헌신적 인 도움말 섹션에서 마지막으로 일단 객체를 탐지하면, 우리는 마지막 단계 인 Communicate로 이동합니다

그래서이 부분에서 우리는 객체가 검출 된 사용자, 그 (것)들에게 그 결과를 검열하는 기회를주십시오 우리가 식별 한 방식이 객체는이 귀여운 작은 객체 마커를 통과합니다 그들은 탐지 된 물체의 중앙에 놓여 야합니다 바운딩 박스, 그림자가있는 상태로 상승 이미지를 볼 수 있는지 확인하십시오 그래서 Kunal이 더 일찍 이야기했던 것을 기억하십시오 결과에서 미리보기 이미지 사용 라이브 카메라 모드의보기? 이것은 개념 상으로 똑같은 일을합니다

사용자가 이미지의 개체를 비교하도록 돕고 있습니다 결과의 개체로 그리고 객체 마커 외에도, Google은 사용자에게 결과 미리보기를 제공합니다 아래쪽에있는이 작은 미니 카드들을 통해 이 가로로 움직이는 회전 목마에 그들을 배치합니다 화면 하단에 사용자가 쉽게 볼 수 있도록 닿다

마지막으로 사용자가 탐색하고 상호 작용하도록 유도하는 방법 결과는? 작은 힘을 디자인의 힘이라고합니다 첫 번째는 모션 전환을 통한 것입니다 따라서 이러한 요소가 화면에 표시되는 방식은 비틀 거리고, 그 점을 증명하는 데 도움이됩니다 여러 결과가 표시됩니다 둘째, 하단의 툴팁 언어를 사용하여 사용자에게 메시지를 표시 할 수 있습니다

결과를 탐색 할 수 있습니다 마지막으로 결국 컨베이어가 스크롤되는 동안, 마커는 해당 카드로 크기가 조정됩니다 보기로 스크롤합니다 따라서 이것은 사용자가 각 카드 사이의 관계를 도출하는 데 도움이됩니다 및 일치하는 점

그런 다음 각 카드 또는 개체 마커를 두 드리십시오 하단 시트에 자세한 내용이 나와 있습니다 Kunal이 라이브 카메라에서 이전에 우리에게 보여준 것과 동일합니다 방법 그리고 이제 다시, 우리가 실수와 이슈에 관해 이야기 할 때, 결과 신뢰를 설명하는 것이 중요합니다

검색 결과가 낮은 신뢰도 점수를 얻으면 사용자가 다시 검색 할 수있는 링크가있는 목록 자체의 맨 아래에 검색 개선을위한 도움말 그리고 낮은 신뢰도의 결과를 제외하고, 일치하지 않으면 검색이 실패하고 돌아올 수 있습니다 몇 가지 이유로 객체가 알려진 객체 세트에없는 것처럼, 또는 이미지 품질이 낮은 경우 따라서 이러한 일이 발생하면 배너를 표시하는 것이 좋습니다 사용자가 섹션을 도울 수 있도록 가이드 검색을 향상시키는 방법에 대한 자세한 내용은 좋아, 지금은 주제에 관해서, 빨리하자 우리가 어떻게 이러한 기본 패턴을 취할 수 있는지 이야기하십시오

브랜드를 표현하도록 사용자 정의 할 수 있습니다 다시 한번, 우리는 Shrine의 예를 사용할 것입니다 Kunal은 이전에 공유했다 핵심 단계가 무엇인지 살펴 봅니다 이 스크린에서와 같이

사용자는 상단 막대의 이미지 검색 아이콘을 탭하거나, 장치에서 이미지를 선택하고, 다음 화면에서 결과를 탐색하십시오 우리가 언급 한 것처럼, 신전 시각 언어 이 모든 각도 모양을 사용하는 것입니다 그래서 여기에 객체 마커를 통해 표현했습니다 우리는 그들을 서클에서 다이아몬드로 바꾼다 그리고 카드의 커트 코너를 통해

그리고 물론, 우리는 타이포그래피 카드의 제목과 모양으로 신사의 컬러 스케일 이것이 바로 객체 감지와 정적 이미지입니다 그래서, 이제는 Kunal을 무대에 다시 맞이하고 싶습니다 마지막 경험, 바코드 스캐닝을 통해 당신을 환영합니다 [박수 갈채] KUNAL PATEL : 고마워, 필

바코드는 쉽고 편리한 형식입니다 실제 세계에서 사용자의 기기로 정보를 전달합니다 ML 키트 바코드 스캐닝 API가 대부분의 표준 바코드 판독 형식을 사용하고 자신의 앱에 쉬운 방법 제공 사용자가 열 필요없이 바코드를 인식 할 수 있어야합니다 별도의 신청서 그리고 이것은 다음 중 하나를 사용하는 좋은 방법입니다

사용자가 다른 방식으로 검색 할 수 있습니다 또는 코드를 스캔하여 자동으로 정보를 입력하는 경우, 수동으로 입력하는 것보다 ML 키트 바코드는 기술적으로 어떻게 작동합니까? 스캐닝 API는 가장 일반적인 1 차원 및 2 차원 바코드 형식 그 값을 읽으십시오 그 값이 문자열과 같은 경우 ID는 당신이 그것을 보낼 수 있습니다 자신의 데이터베이스에 결과를 다시 가져오고 제시하십시오 사용자에게

그러나 바코드 스캐닝 API의 멋진 기능 중 하나 바코드 값이 하나 인 경우 연락처에 대한 몇 가지 공통 구조화 된 데이터 형식 정보, 이벤트 세부 정보, 사물 이렇게하면 API가 자동으로 구조화 된 데이터를 구문 분석하고 제시하도록하십시오 추가 작업을 할 필요없이 즉시 사용자에게 제공 할 수 있습니다 그래서 우리는이 세 가지 경험에 대해 생각했습니다 다른 라이브 카메라 경험에 사용한 단계 또는 물체 감지 흐름 그래서 여기서 바코드 만의 독특한 것에 집중하려고 노력할 것입니다

따라서 감지 단계에서 우리는이 기능을 엽니 다 앱에서 바코드를 찾기 시작했습니다 우리는 같은 유형의 탑승을 원합니다 그것을 간단하게하십시오 짧게 지켜라

사용자가 할 수있는 모션에 집중 스캔 할보기로 바코드를 가져 오려면해야합니다 일단 경험을 쌓으면 우리가 살아있는 물체 탐지 흐름에 사용했던 레티클, 대신 바코드 프레임이라고 부릅니다 이 바코드 프레임은 화면 중앙에도 있으며, 하지만 바코드가 표시 될 영역을 설정하고 있습니다 한 번 입력하면 자동으로 스캔됩니다 따라서 더 눈에 잘 띄는 지역을 제공하십시오

사용자가 바코드를 스캔하도록 배치합니다 그리고 우리는 또한 주목을 끌기 위해 그것을 움직입니다 화면 중앙으로 이동합니다 마지막으로주의해야 할 점은 가로 세로 비율 이 바코드 프레임을 조정할 수 있습니다 자신의 응용 프로그램과 일치시킬 수 있습니다

따라서 QR 코드를 스캔하려고하는 경우, 이 프레임은 더 정사각형을 취할 수 있습니다 사용자에게 다른 힌트 또는 큐를 제공하기 위해 그것들은 바코드 종류입니다 찾고 있어야합니다 그들이 물건을 발견하는 데 어려움이 있다면, 이전의 흐름에서 살펴본 바와 같이 바코드를 감지합니다 우리는 같은 종류의 에러 케이스와 에러 스타일을 원한다

바코드 프레임 및 나머지 앱용 우리는 이전의 흐름에서 언급했다 인식 단계에서 사용자가 바코드를 스캔하고, 앱이 값을 읽었으며로드가 발생했습니다 그래서 우리가 물체 감지에서 이야기 한 것과 비슷합니다 대부분의 간단한 바코드 형식의 경우 실제로 최소 최소 탐지 크기를 설정할 필요는 없습니다 대부분의 포맷은 그래픽으로 쉽습니다

일단 읽고 나면 꽤 빨리 읽을 수 있어야합니다 그 바코드 프레임 영역에 그러나 PDF 417, 더 높은 품질이 필요한 세부 사항이 많이있다 이미지를 바코드로 정확하게 읽으려면 스캐닝 API 이러한 형식의 형식의 경우 최소 감지 크기

그리고이 부분 채우기 스타일 사용하기 바코드 프레임 및 사용자에게 도구 설명 메시지가 표시되도록 그들이 더 높이기 위해 더 가까이 나아갈 필요가 있다는 것을 알아라 스캔 할 고품질 이미지 바코드에 대한 정보를 보내야하는 경우 다른 데이터베이스 또는 다른 부분으로 이동 처리 할 앱의 수를 로딩 시간을 사용자에게 알려주는 기능 바코드 프레임을 불확정 진도로 바꿈으로써 지시자 값을 즉시 읽을 수 있으면, 결과를 보여주기 위해 곧바로 건너 뛸 수 있습니다 따라서 사용자에게 결과를 제공 할 때, 결과를 표시하는 몇 가지 고유 한 기능이 있습니다

우리는 이전의 흐름에서 다루지 않은 것들입니다 첫 번째는 기술 흐름에서 언급 한 것입니다 데모는 바코드 스캐닝 API가 읽을 수 있다는 것입니다 구조화 된 데이터와 구조화되지 않은 데이터 또는 데이터를 모두 호출합니다 당신이 바라 볼 필요가있는 것, 그리고 맞춤 정보가있을 수 있습니다

키 값 쌍에있는 구조화 된 데이터의 경우, 텍스트 필드는 정말 훌륭한 형식을 제공합니다 이 정보를 나타 내기 위해 관계의 핵심 최종 가치 종류 텍스트 필드 레이블 및 입력 영역과 잘 일치하며, 복사 할 수있는 작업을 제시 할 공간을 제공합니다 또한 사용자를위한 일관된 형식 여러 유형의 정보를 스캔하는 방법 당신은 사용할 수 있습니다 나만의 맞춤 정보를 원하시면 찾고 올려서 레이아웃을 사용자 정의 결과를 표시하는 데 사용중인 컨테이너의 바코드 스캐닝의 또 다른 차이점 사용자가 수행하는 작업 유형 매우 다를 수 있습니다 사용자가 여러 항목을 스캔하려고하는 경우, 전자 상거래 앱이라고 가정 해 보겠습니다

가격 비교, 그리고 여러 항목을 찾고 바코드 결과를 표시하는 것이 좋습니다 모바일 하단 시트에서 사용자가 쉽게 카메라로 돌아가서 다른 바코드를 스캔하십시오 하지만 기프트 카드 스캔과 같은 양식 작성과 같은 작업 잔액이 귀하의 계정에 추가되면, 해당 정보를 바코드 스캐닝 기능에 표시 사용자에게 많은 의미를주지 않습니다 그것은 실제로 그들에게 더 많은 일을 만들어냅니다

따라서 이러한 유형의 흐름에 대해 권장합니다 어디서 데이터 입력을 완료하는지, 자동으로 사용자를 반환하고 있습니다 해당 필드가 채워진 이전 화면으로 돌아 가기 에서 우리는 할 수있을 때 그 일을하고 싶습니다 여러 작업이 그 중간에있을 수 있습니다

연락처 정보를 검토하려면 예를 들어, 누군가의 이름을 편집하고 싶을 수 있습니다 정보를 저장하기 전에 메모를 추가하십시오 바코드 기능을 종료하십시오 따라서 결과를 높이는 것이 좋습니다 모달 바닥 시트 또는 전체 화면 대화 상자에서, 그래서 사용자가 되돌아 가서 어떤 것을 바꿀 필요가 있다면, 그들은 할 수있다

그리고 그들은이 가벼운 방법을 가지고 있습니다 저장하고 나가기 전에 그 정보를 편집하는 것 이 기능은 전적으로 그래서 우리가 다른 흐름에서했던 것처럼, 나는 바코드 스캐닝이 가능한 방법의 예를 신속하게 공유하십시오 앱과 일치하도록 맞춤 설정되었습니다 그래서 우리는 여기에서 흐름을보고 있습니다 우리는 신전의 색깔과 타이포그래피를 가져 왔습니다

다시 여기에서 부르는 것은 스크림입니다 바코드를 스캔 할 수있는 영역을 구분합니다 나머지 카메라보기에서 대신 신전 텍스트 색상을 사용 중입니다 약간 더 브랜드화 된 경험을위한 순수한 검정색의 또한 바코드 프레임을 면밀히 살펴보면 우리는 보통 약간 둥근 모서리를 가지고 있습니다

우리는 날카로운 모서리를 사용하여 로고의 날카로운 상처 동일한 타이포그래피와 색상 선택 이전 플로우에서 설명한 툴팁의 경우 여기까지도 수행하십시오 그래서 우리는 세 가지 다른 패턴을 겪었습니다 많은 세부 사항에서 많은 정보를 던졌습니다 그리고 당신에 마이크로 상호 작용 결정

하지만 잘하면 거기에 나타났습니다 이 세 가지 흐름 모두에 공통적 인 주제가 있습니다 필에 대한 이야기를하기 위해 그것을 Phil에게 되돌려 보겠습니다 우리가 사용하는 디자인 원리들 의사 결정 과정 [박수 갈채] PHILLIPE CAO : 감사합니다, Kunal

이제 우리는이 세 가지 경험을 잘 알고 있습니다 왜 우리가 초 동안 축소하지 그래? 핵심 디자인 원칙을 지켜라 니가하는 것처럼 명심해야 해 이러한 패턴을 제품에 구현합니다 우리의 첫 번째 원칙은 카메라를 만드는 것입니다

최소한의 UI 만 있으면됩니다 우리는 중앙 입력 수단이 카메라입니다 그리고 물건을 겹쳐 써야 할 때 상단에, 레티클 또는 객체 마커처럼, 우리는 그들이 어떤 종류에 대해서도 읽기 쉽도록 만들고 있습니다 이미지, 밝음 또는 어둡게 두 번째 원칙은 매 순간 사용자에게 정보를 제공하는 것입니다 이러한 새로운 패턴은 사용자에게 익숙하지 않을 수 있습니다

모든 단계에서 무슨 일이 벌어지고 있는지 설명 원활한 경험을 보장하는 것이 중요합니다 먼저, 이러한 설계 단계에 실제로 의존하십시오 우리는 당신의 흐름을 조직하는 것을 도와주었습니다 그리고 언어, 동작, 암시 적으로 명시 적으로 통신 할 구성 요소 지금 무슨 일이 일어나고 있는지 사용자에게 알려주세요 그리고 나중에 그들이 무엇을 기대해야하는지

그리고 마침내, 주요 흐름의 바깥쪽에, 사용자에게 앱의 필수 요소 소개 온보드 (on-boarding) 경험을 통해 미래에 대해 더 많은 것을 배울 수있는 지속적인 방법을 제공하십시오 전담 도움말 섹션을 통해 우리의 마지막 원칙은 예상하는 것입니다 문제의 기회 레이첼이 처음에 이야기했던 것과 마찬가지입니다 이러한 유스 케이스의 경계를 디자인하는 방법 이러한 흐름은 다양한 요인으로 인해 오류가 발생하기 쉽습니다

그리고 그것은 당신의 사용자에게 정말로 실망 스러울 수 있습니다 이러한 요소를 고려하지 않은 경우 따라서 이러한 흐름을 설계하기 전에 디자인 측면에 들어가기, 정말로 모델의 경계를 테스트하고 학습하십시오 뭐하는 거 좋아? 뭐가 그렇게 나쁜거야? 그리고 일반적인 오류는 무엇입니까? 그 경계 때문에? 또한 항상 환경 조건을 고려해야합니다 따라서 대부분의 앱은 그렇지 않으면 밝거나 어둡거나 사용자의 환경은 있지만 시각적 검색과 같은 것입니다 그것은 정말로 중요합니다

그래서 이것들은 또한 모든 종류의 사용자에게 적용 가능하며, 기술적 인 친숙도에 관계없이 또는 그들의 장치가 얼마나 좋은지 마지막으로 자신감을 바탕으로 디자인을 조정하십시오 귀하의 결과 중 따라서 이것은 자신감을 분명히 전달하는 것에 대해서는 덜합니다 방법의 모든 단계에서

그러나 할 일을 할 때 더 많이 생각해보십시오 부차적 인 결과를 가져와 사용자가 그들의 정보가 어디에 있는지 더 잘 이해한다 에서 오는 따라서 여기에 우리의 세 가지 고급 설계 원리가 요약되어 있습니다 카메라 UI를 최소화하고 의미있게 만드십시오

매 순간 사용자에게 정보를 제공하십시오 그리고 문제에 대한 기회를 기대하십시오 그리고 이제 물건을 닫으려면, 나는 그것을 버릴거야 줄곧 레이첼에게 돌아 왔습니다 RACHEL BEEN : 좋아, 나 왔어

이걸 끝내자 승인 정말 빨리, 나는 말할거야 우리가 한 몇 가지 협력에 대해 처음에 언급했다 우리는 이케아와 아디다스와 함께 일했습니다

우리는이 두 초기 액세스 파트너와 협력했습니다 이 흐름이 무엇을 실제로 볼 것인가? 실제 제품처럼 보입니다 가장 구체적으로 실제 교육 데이터를 사용합니다 이 팀과 함께 일하는 것은 정말 환상적이었습니다 의견을 얻는 것뿐만 아니라 실제로 이 팀들은 테마에 접근했습니다

그들이 어떻게 살아있는 대상과 동일한 패턴을 취했는지 감지,하지만 정말 정말 세부 사항을 맞춤 그들의 브랜드에 AIML 텐트에서이 두 가지 데모를 모두 확인할 수 있습니다 매우 가까이에 있습니다 둘째, Flutter와 함께 작업했습니다 그들은 GitHub에 다운로드 가능한 소스 코드를 가지고있다

가상의 바코드 흐름을 볼 수 있습니다 우리의 [? FA?] 전자 상거래 앱, 신사, 이 가상의 흐름을 보여줄 모양 그리고 그게 무엇인지보기 정말 귀중합니다 실제로는 그렇게 보일 수 있습니다 좋아, 진짜 빨리

일부 리소스에 대한 실제 요약 실제로 구현하는 데 도움이됩니다 ML 키트 및 모든 dev 문서와 데모 재료 디자인과 관련이 있습니다 ML 키트 사이트와 GitHub에서 사용할 수 있습니다 어제 최고에있는 당신의 그것들을 위해, 우리 연구팀의 사람들은 최근에 안내서를 시작했습니다 도구와 최상의 도구를 제공하는 정말 환상적인 리소스 기계 학습으로 설계하기위한 실습

사용할 수있는 pairwithgooglecom smallthankswithgooglecom

그리고 물론이 세 가지 패턴 모두 자세한 내용은 materialio 사이트에서 자세히 볼 수 있습니다 그리고 그것으로, 우리 이야기에와 주셔서 감사합니다 우리는 바로 옆집 샌드 박스에있을거야 후에, 우리에게 질문을하고 싶다면

그리고 작별 인사 [음악 재생]