Днес обучих модел за един ден. С малко помощ от приятелите ми по етикета... но да, това е реалност.

С новата линия продукти AutoML на Google Cloud Platform всичко изглежда възможно дори и да нямате опит в машинното обучение.

В този случай използвах AutoML Vision, за да взема данни от предизвикателството на Airbus Ship Kaggle, най-вече за работа, но също и от любопитство, за да видя дали един начинаещ наистина е добър за игра на площадката на Kaggle.

Така че не знам какво чакаме...

  1. Навигирайте до Vision в началната страница на Google Cloud Project и натиснете „Настройка“. Това ще включи всички необходими API, които са ви необходими за този проект.

2. Изтеглете данните. Това може да отнеме минута, така че може би отидете на тренировка или прочетете книга... Ако вече имате качен собствен набор от данни, тогава страхотно. Ако не и имате нужда или искате данни, с които да си поиграете, отидете на страницата за състезание Airbus Ship Detection на Kaggle и изтеглете данните тук.

3. Има множество различни начини за качване на данни в проект на AutoML Vision. Когато създадете нов източник на данни на AutoML, ще бъде създаден контейнер на Google Cloud Storage във връзка с проекта. Ако все още нямате вашите данни в GCS група, добре е директно да качите тези изображения и папки в новата група, която ще бъде създадена (завършваща с „vcm“). В моя случай данните вече се намираха в друга кофа в проекта на приятел, така че трябваше да завърша задача за прехвърляне на GCS. Следвайте по-долу в двете посоки!

Щракнете върху раздела „Набори от данни“ във вашия AutoML проект, след като сте активирали всички необходими API и се приземите на „началната страница“ на AutoML. В горния ляв ъгъл щракнете върху „Нов набор от данни“. Ще ви отведе до екрана по-горе.

4. В моя случай трябваше да прехвърля данни от друга кофа. AutoML може да импортира изображения по три различни начина: като ги качите от вашия локален компютър, изберете csv файл или изберете да импортирате изображения по-късно. Ако току-що сте изтеглили данните от Kaggle или вашите изображения се съхраняват локално, преминете към стъпка 8.

В моя случай трябваше да направя две неща. Първо, трябваше да завърша задача за прехвърляне на хранилище на GCS, за да импортирам снимките си от една GCS кофа в друга. След това трябваше да създам csv (от стар) и да използвам скрипт на python, за да променя пътя на файла за съхранение в облак. Ще разгледам и двете стъпки – достъп до примерния csv и скрипта на python, който използвах на моята страница в Github тук.

5. Нека се върнем обратно към секцията Google Cloud Storage в нашата конзола за секунда. Забележете, че след отваряне на AutoML проект се създава нова кофа. В моя случай е озаглавен „ships-automl-vision-vcm“. Другата кофа в тази екранна снимка е кофата, която съдържа всички данни за корабите („ships-automl-vision“).

6. За да създадете задание за прехвърляне, което ще премести всички мои данни от една кофа в друга, щракнете върху „Прехвърляне“ под опцията от менюто „Браузър“ от лявата страна на изгледа на GCS конзолата по-горе. Ще стигнете до страницата по-долу. Кликнете върху „Създаване на трансфер“.

Можете да създавате задания за прехвърляне на Google Cloud Storage от други източници на данни извън контейнер на Google Cloud Storage. Както можете да видите по-долу, опциите включват кофи на Amazon S3 или дори извличане на данни от URL адрес.

В този случай избрах моята оригинална кофа с моите данни като източник и новата „vcm“ кофа като дестинация.

Изберете „Изпълни сега“ и натиснете „Създаване“.

7. Сега ще трябва да създадете csv файл, който се намира в новата “vcm” GCS кофа. Този csv файл просто съдържа една колона с еквивалент на пътя на файла gs://, който сочи към всички изображения, които искате да импортирате. Вижте по-долу за мой пример:

За да създадете свой собствен, можете да направите това ръчно или просто да изтеглите моето примерно копие от моя Github тук и да изпълните следния прост скрипт на Python, за да намерите и замените пътя на моя файл с името на вашата GCS кофа. Ако сте го кръстили по същия начин, тогава можете просто да използвате отново този csv!

import re
# open your csv and read as a text string
with open('train.csv', 'r') as f: #remember to replace filepath here!
    my_csv_text = f.read()
find_str = 'airbus_ship_detect'  #replace with your original bucket name
replace_str = 'ships-automl-vision-vcm'   #replace with the destination bucket name that AutoML created
# substitute
new_csv_str = re.sub(find_str, replace_str, my_csv_text)
# open new file and save
new_csv_path = './train-new.csv' # or whatever path and name you want
with open(new_csv_path, 'w') as f:
    f.write(new_csv_str)

За тези, които се нуждаят от напомняне, не забравяйте да замените моя път към файла по-горе с мястото, където сте записали csv (вижте коментирания ред), както и да замените имената на кофите GCS с това, което сте нарекли кофите за съхранение.

Зареждането на снимките ще отнеме известно време в зависимост от това колко изображения имате. С набора от данни на Kaggle Airbus Ships това отне около 2 минути.

8. Сега трябва да видите страница, която изглежда така, с всички снимки, които току-що сте качили:

Щракнете върху „Добавяне на етикет“, за да започнете да въвеждате етикетите, които ще използвате за вашите данни. В случая с набора от данни на Airbus Ships проблемът е прост въпрос „Кораб/Без кораб“. Задачата за етикетиране включва етикетиране на изображения с кораби като такива и изображения в набора от данни, които не включват кораби, като „Без кораб“. За да етикетирате изображение, или изберете изображението, за да го увеличите, и добавете етикет в десния страничен панел, или можете да изберете няколко изображения наведнъж, ако сте уверени в плочките с миниатюри, за да добавите етикет към:

Ако работите с набора от данни на Airbus Ships, вероятно сте загрижени за етикетирането на всички 104 000 изображения на влакове, които са включени в папката с влакове. „Но ти каза, че това ще стане за един ден!“… Да, направих! Това, което моята съквартирантка и аз успяхме да направим (добре, най-вече тя), беше да тестваме и да видим колко изображения трябва да бъдат етикетирани, за да достигнем над 90% точност. Добрата новина е, че 1500 изображения е мястото, където започвате да се колебаете между 94%-95% точност и съм сигурен, че бихте достигнали нещо по-близо до 98% точност, ако продължите да етикетирате изображения.

И така, изображенията са етикетирани. Сега трябва да обучим модела.

Обучението на модел на AutoML Vision е толкова лесно, колкото щракване върху бутон, но имате няколко опции, както можете да видите по-долу:

Щракнете върху раздела „Влак“ до раздела „Изображения“, с който току-що работехте, за да етикетирате изображенията си. Вашият екран няма да изглежда като моя по-горе (тъй като вече съм обучил модели), но пак ще видите изскачащия прозорец.

Имате шанс да назовете вашия модел - имайте предвид, че това е важно за версията, ако планирате да експериментирате с обучение.

След това можете да изберете от малка група опции за обучение. Можете да тренирате вашия модел за един час безплатно, след което да увеличите до 24 часа. Вижте ценообразуването на AutoML Vision тук за представа колко струва това – ако имате по-голям набор от данни, където точността е изключително важна за вас (напр. Ако изграждате модели за производство на IRL), бих препоръчал тази опция.

Когато изберете опцията, която работи най-добре за вас (в случая с набора от данни за корабите на Airbus, аз избрах безплатната опция), натиснете „Стартиране на обучението“.

След като обучението приключи, ето таблото за управление, което можете да видите, след като обучението приключи. Бързият преглед показва средна точност и извикване за вашия модел.

AutoML Vision ви дава пълна оценка на вашия модел извън това, което виждате по-горе. Кликнете върху „Вижте пълната оценка“:

Забележете, че можете да превключвате прага на резултата и да проучите допълнително как да оптимизирате своя модел.

Ако тези показатели не означават много за вас или тепърва започвате в машинното обучение, консултирайте се с това ръководство за начинаещи за AutoML. Докато някои от дефинициите на термините тук изглеждаха добре, за начинаещ може да се нуждаете от повече разяснения по теми като прецизност срещу припомняне. Проучете какво означават те в реалния свят, както и проучете теми като справедливост на машинното обучение, което се споменава няколко пъти в ръководството.

9. Сега е време да тествате вашия модел. Това, което AutoML прави под капака, което потребителят не осъзнава по време на процеса на обучение, е, че автоматично сегментира/заделя част от данните, за да извърши и тестове. Ако искате ръчно да сегментирате вашите данни от набори от данни за обучение към тестване, можете да направите това и в AutoML. За целите ни днес ще качим няколко снимки от набора от данни на Airbus Ships (под папката „test“ от данните, които сте изтеглили от уебсайта на Kaggle), за да видим как се представя нашият модел.

Ако превъртите надолу, получавате повече от рейтинг на доверие. Превъртете надолу, за да видите как можете програмно да извикате новия модел, който току-що сте обучили да тествате върху много изображения, ако качването на изображения ръчно не е нещо, което ви интересува:

И така... ето го! Модел, обучен за един ден с API на Vision на Google като основа за вашия персонализиран модел.