یاه تباقر و ساک ،قیمع ییگدای -...

Post on 22-May-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ای یادگیری عمیق، کراس و رقابت هkaggle

عمیقدرس یادگیری آقای دکتر امیرخانی

دانشگاه قم97اردیبهشت

2

?0 1 0 1 0

1 0 1 1 1

0 1 0 1 1

0 0 0 1 1

1 0 1 0 1

K

زینب آرزومند

kaggleیادگیری عمیق، کراس و رقابت های 4

Competitions: Fashion MNIST

Kernel: CNN with Keras

Fashion MNIST

•An MNIST-like dataset of 70,000 28x28 labeled fashion images

•Fashion-MNISTتصاویرازایمجموعهfashionاست.

نمونه10،000باتستمجموعهیکواینمونه60،000آموزشمجموعهیکازمتشکلکه•.است

.استکالس10ازبرچسبیکباهمراه،28در28ابعادباسفیدوسیاهتصویریکنمونههر•

kaggleیادگیری عمیق، کراس و رقابت های 5

Fashion MNIST …

(پیکسل784مجموعدر).داردعرضدرپیکسل28وارتفاعدرپیکسل28تصویرهر•

ریکیتایاروشنیمیزاندهندهنشانکهداردوجودآنبامرتبطمقداریکپیکسلهربرای•.استپیکسلآن

.است255و0بینصحیحعددیکمقداراین•

.داردستونtest785وtrainهایدادهمجموعه•

.استلباسنوعدهندهنشانوکالسهایبرچسبشاملاولستون•

.استمربوطهتصویرهایپیکسلمقادیرحاویهاستونبقیه•

kaggleیادگیری عمیق، کراس و رقابت های 6

برچسب ها

:به یکی از برچسب های زیر اختصاص داده می شودtestو trainهر مثال •تی شرت/ تاپ0شلوار1پلیور2لباس3کت4صندل5پیراهن6کفش کتانی7کیف/ کیسه8بوت تا مچ پا9

kaggleیادگیری عمیق، کراس و رقابت های 7

اطالعات مختصر

درشدهتوصیفهایدستورالعملباKerasازاستفادهباCNNبندیطبقهیککار،ایندر•Learning Deepزبانباpythonدادخواهیمآموزش.

استفادهvalidationعنوانبه(دادهردیف12000)trainاطالعات٪20ازاستراتژیاین•.کردخواهد

شدهندیدههرگزکههاییدادهرویبرمدلصحتارزیابیمنظوربهتستهایدادهحالیکهدر•.شودمینگهداریاست،

kaggleیادگیری عمیق، کراس و رقابت های 8

kaggleیادگیری عمیق، کراس و رقابت های 9

عه تعیین مجموارزیابی و

آزمون

kaggleیادگیری عمیق، کراس و رقابت های 10

عه تعیین مجموارزیابی و

آزمون

kaggleیادگیری عمیق، کراس و رقابت های 11

ایجاد مدل

kaggleیادگیری عمیق، کراس و رقابت های 12

خالصه مدل

kaggleیادگیری عمیق، کراس و رقابت های 13

خالصه مدل

kaggleیادگیری عمیق، کراس و رقابت های 14

نتایج

یک)استشدهگزارشزیرسایتدرکهاستایbaselineازمابندیطبقهرسدمینظربه•.استبهتر(است0.897متوسطدقتباSVMبندیطبقه

kaggleیادگیری عمیق، کراس و رقابت های 15

نتایج

kaggleیادگیری عمیق، کراس و رقابت های 16

نتایج

kaggleیادگیری عمیق، کراس و رقابت های 17

نتایج

ه شده در اینجا یک زیر مجموعه از کالس هایی که به درستی پیش بینی شده اند نشان داد•:است

kaggleیادگیری عمیق، کراس و رقابت های 18

نتایج

اده شده در اینجا یک زیر مجموعه از کالس هایی که به نادرستی پیش بینی شده اند نشان د•:است

kaggleیادگیری عمیق، کراس و رقابت های 19

منابع

• https://www.kaggle.com/zalando-research/fashionmnist

kaggleیادگیری عمیق، کراس و رقابت های 20

آزاده امیرک9614163003

kaggleیادگیری عمیق، کراس و رقابت های 21

Competition: Cdiscount’s Image Classification

Challenge

Kernel:Keras generator for reading directly from

BSON

Introduction

• Cdiscount generated nearly 3 billion euros last year, making it France’s largest non-food e-commerce company. While the company already sells everything from TVs to trampolines, the list of products is still rapidly growing. By the end of this year, Cdiscount.com will have over 30 million products up for sale. Ensuring that so many products are well classified is a challenging task.

• Currently, Cdiscount.com applies machine learning algorithms to the text description of the products in order to automatically predict their category. As these methods now seem close to their maximum potential, Cdiscount.com believes that the next quantitative improvement will be driven by the application of data science techniques to images.

kaggleیادگیری عمیق، کراس و رقابت های 22

Introduction …

• In this challenge you will be building a model that automatically classifies the products based on their images. As a quick tour of Cdiscount.com's website can confirm, one product can have one or several images. The data set Cdiscount.com is making available is unique and characterized by superlative numbers in several ways:

• Almost 9 million products: half of the current catalogue

• More than 15 million images at 180x180 resolution

• More than 5000 categories: yes this is quite an extreme

• multi-class classification!

kaggleیادگیری عمیق، کراس و رقابت های 23

Kernel introduction

This notebook contains a generator class for Keras called BSONIteratorthat can read directly from the BSON data. You can use it in combination with ImageDataGenerator for doing data augmentation.

This notebook has 4 main parts:

1. Create lookup tables

2. The generator

3. Training

4. Test set predictions

⁂ What is BSON?

MongoDB represents JSON documents in binary-encoded format called BSON behind the scenes.

BSON extends the JSON model to provide additional data types, orderedfields, and to be efficient for encoding and decoding within differentlanguages.

kaggleیادگیری عمیق، کراس و رقابت های 24

Part 1: Create lookup tables

• The generator uses several lookup tables that describe the layout of the BSON file, which products and images are part of the training/validation sets, and so on.

• You only need to generate these tables once, as they get saved to CSV files.

kaggleیادگیری عمیق، کراس و رقابت های 25

Part 1: Create lookup tables...

** Read the BSON files

kaggleیادگیری عمیق، کراس و رقابت های 26

Part 1: Create lookup tables...

Create a random train/validation split

We split on products, not on individual images. Since some of the categories only have a few products, we do the split separately for each category.

This creates two new tables, one for the training images and one for the validation images. There is a row for every single image, so if a product has more than one image it occurs more than once in the table.

kaggleیادگیری عمیق، کراس و رقابت های 27

Part 1: Create lookup tables...

Create a 80/20 split. Also drop 90% of all products to make the dataset more manageable.

kaggleیادگیری عمیق، کراس و رقابت های 28

Part 2: The generator

The Keras generator is implemented by the BSONIterator class.

It creates batches of images (and their one-hot encoded labels) directly from the

BSON file.

It can be used with multiple workers.

Create a generator for training and a generator for validation.

kaggleیادگیری عمیق، کراس و رقابت های 29

Part 2: The generator ...

Does it really output images and one-hot encoded class labels? Note that the

images are pre-processed (and augmented) and therefore may look weird.

kaggleیادگیری عمیق، کراس و رقابت های 30

Part 3: Training

Create a very simple Keras model and train it, to test that the generators work.

kaggleیادگیری عمیق، کراس و رقابت های 31

Part 3: Training …

kaggleیادگیری عمیق، کراس و رقابت های 32

Part 3: Training …

kaggleیادگیری عمیق، کراس و رقابت های 33

Part 3: Training …

kaggleیادگیری عمیق، کراس و رقابت های 34

منابع

• https://www.kaggle.com/humananalog/keras-generator-for-reading-directly-from-bson

kaggleیادگیری عمیق، کراس و رقابت های 35

Zohreh pourjafari

kaggleیادگیری عمیق، کراس و رقابت های 36

Competition: Dog Breed Identification

ه شناخت مسالو جمع آوری

داده

تشخیص نژاد سگ از روی تصویر: مسئله

تصاویر سگ: ورودی

نوع نژاد سگ: خروجی

نوع مسئله :multiclass classification

Stanford Dogs Dataset

120نژاد

20580تصویر

kaggleیادگیری عمیق، کراس و رقابت های 37

یمعیار ارزیاب

معیار ارزیابی

فرمت فایل ارسالی

پروتکل ارزیابی

از روشhold-out 912بوده که 1141استفاده کرده است و تعداد کل تصاویر.برداشته استvalidationو بقیه رو برای trainتا برای

kaggleیادگیری عمیق، کراس و رقابت های 38

پیش پردازشداده

کاهش تعداد کالس هابارگذاری داده

پیش پردازش داده

Hold-out

Data augmentation

kaggleیادگیری عمیق، کراس و رقابت های 39

همعماری شبک

kaggleیادگیری عمیق، کراس و رقابت های 40

Inception-v3

• https://becominghuman.ai/transfer-learning-retraining-inception-v3-for-custom-image-classification-2820f653c557

kaggleیادگیری عمیق، کراس و رقابت های 41

خالصه مدل

kaggleیادگیری عمیق، کراس و رقابت های 42

خالصه مدل ...

kaggleیادگیری عمیق، کراس و رقابت های 43

kaggleیادگیری عمیق، کراس و رقابت های 44

منابع

https://www.kaggle.com/methindor/keras-starter-kernel

kaggleیادگیری عمیق، کراس و رقابت های 45

زهراچگنی

kaggleیادگیری عمیق، کراس و رقابت های 46

- IEEE's Signal Processing Society: رقابت

Camera Model Identification

Keras:کرنل Simple CNN Starter

معرفی رقابت

.تاسگرفتهقرارمطالعهموردجهانسراسردرمحققچندینتوسطفعالطوربهمسئلهاین•هایتخمین:اندشدهارائهگذشتهدرماشینیادگیریپیشنهادیهایحلراهازبسیاریاهایخطهمپوشانیبندی،طبقههایویژگیعنوانبهدوربینرنگتخریبمربعاتکمترین

بندیطبقهترپیچیدههایبندیطبقهبهکههاییویژگیعنوانبهپیکسلارزشبینیپیشاینحال،اینباشناساییهایویژگیدوربینمدلیادگیریبرایهاCNNازاستفادهوشده

.استنشدهحلکافیاندازهبههنوزمشکل

کهکندمیدعوتالگوریتمیساختبهراشماIEEEسیگنالپردازشانجمنرقابت،اینبرای•مییشناسایردیابیازاستفادهباراعکسیکدوربین،هایمدلازیککدامکندمیمشخص

.کند

kaggleیادگیری عمیق، کراس و رقابت های 47

هدف رقابت

ودهیمبتشخیصفیلمداخلازرامجرمردپایاینکهبرایفیلمطریقازمجرمردپایتشخیص•واقعییااستساختگیفیلمکهکنیمتعیینهمچنین

kaggleیادگیری عمیق، کراس و رقابت های 48

هدف رقابت

kaggleیادگیری عمیق، کراس و رقابت های 49

ارزیابی

.شودمیارزیابیوزنیبندیطبقهدقتاساسبررقابتاین•

kaggleیادگیری عمیق، کراس و رقابت های 50

همعماری شبک

kaggleیادگیری عمیق، کراس و رقابت های 51

هخالصه شبک

kaggleیادگیری عمیق، کراس و رقابت های 52

ه خالصه شبک...

kaggleیادگیری عمیق، کراس و رقابت های 53

منابع

https://www.kaggle.com/c/sp-society-camera-model-identification

kaggleیادگیری عمیق، کراس و رقابت های 54

رقیه دوست پرور

kaggleیادگیری عمیق، کراس و رقابت های 55

Food Images (Food-101): رقابت

Simple CNN: کرنل

همعرفی مسئل

مجموعهاین.استfood-101دادهمختلفهایزیرمجموعهازتعدادیشاملدادهمجموعه•آموزشکهاستاینایده.باشدمیغذاانواعازدسته101درغذاداربرچسبتصاویرشاملستردهگهاینسخهشاملهادادهدلیلهمینبه.شودایجادتصویرتحلیلبرایتریسادههای

طوربهوHDF5صورتبههاداده.استسریعهایتستایجادبرایتصاویرازشدهضعیفKerasخاص HDF5Matrixخواندراآنهاتوانمیراحتیبهکهاندشدهاصالح.

ازتفادهاسباراناشناختهتصویریکخودکارطوربهبتوانیمکهاستاینرقابتایندرهدف•تصاویر1000وآموزشیتصاویر10099شاملمجموعهاین.کنیمبندیطبقههادادهمجموعه

.است(32*32)تست

kaggleیادگیری عمیق، کراس و رقابت های 56

همعرفی مسئل

kaggleیادگیری عمیق، کراس و رقابت های 57

مجموعه داده Food-101

داده ها از منبع اصلی موجود در •https://www.vision.ee.ethz.ch/datasets_extra/food-101 /بسته بندی شده اند.

250برای هر کالس، . شدهتصویر ارائه 000'101دسته غذا، با 101شاملیک مجموعه داده •.تصویر آموزشی ارائه شده است750دستی تست شده و همچنین ر تصاوی

kaggleیادگیری عمیق، کراس و رقابت های 58

همعماری شبک

ینسخهاسکریپتازاستفادهباتصاویربندیطبقهبرایاساسیبسیارعصبیشبکهیک•کوچکهایدادهمجموعهبرایمناسبوسریعآموزشبرایشبکهاین.Kerasنمایشی.اندشدهاضافهoverfittingازجلوگیریبرایDropoutهایالیه.شودمیاستفاده

kaggleیادگیری عمیق، کراس و رقابت های 59

همعماری شبک

kaggleیادگیری عمیق، کراس و رقابت های 60

ارزیابی

بهآموزشیدادهمنحنی.دهدمینشانآموزشیدورهطولدرراAccوLossارزیابی،تابع•.استقرمزرنگبهارزیابیدادهوآبیرنگ

kaggleیادگیری عمیق، کراس و رقابت های 61

تجسم نتایج

ش بینی ها در اینجا نتایج یک نمونه کوچک از تصاویر معتبر را نشان می دهد تا ببینیم که پی•.چگونه با داده ها مطابقت دارند

kaggleیادگیری عمیق، کراس و رقابت های 62

منابع

• https://www.kaggle.com/kmader/simple-cnn/notebook

• https://www.vision.ee.ethz.ch/datasets_extra/food-101/

kaggleیادگیری عمیق، کراس و رقابت های 63

مریم طالب وند

kaggleیادگیری عمیق، کراس و رقابت های 64

Competetion: TensorFlow Speech

Recognition Challenge

kernel: keras Directory Iterator - (LB 0.72)

همعرفی مسئل

کند؟درکراسادهگفتاریهایفرمانکهکنیدایجادالگوریتمیکتوانیدمیآیا•

Speechگروهیهایدستورالعملازاستفادهبرایشمارقابت،ایندر• Datasetمیچالش.کنددرکراگفتاریسادهدستوراتکهکنیدایجادراالگوریتمیتاکنید

kaggleیادگیری عمیق، کراس و رقابت های 65

داده ها

مجموعه داده ای طراحی شده است که به شما اجازه می دهد رابط های صوتی اساسی اما مفید •نجانده ، ارقام و دستورالعمل های گ"نه"، "بله"برای برنامه های کاربردی را با کلمات رایج مانند

.شده ایجاد کنید

•train.7z :ی پوشه صوت. شامل چند فایل اطالعاتی و یک پوشه از فایل های صوتی می باشد( تیبرچسب از کلیپ صو)ثانیه از فرامین صوتی با نام پوشه 1حاوی زیرپوشه ها با کلیپ های

.می باشد

• ، بلی، نه، باال، پایین، چپ، راست: برچسب هایی که باید در تست پیش بینی کنید عبارتند از.و هر چیز دیگری مثل ناشناخته یا سکوت باید در نظر گرفته شود . روشن، خاموش، توقف، رفتن

kaggleیادگیری عمیق، کراس و رقابت های 66

ارزیابی

مشاهدات فایل های ارسالی بر روی دقت چند طبقه ای ارزیابی می شوند، که به سادگی میانگین.با برچسب صحیح است

، بله، نه، باال، پایین، چپ، راست: برچسب ممکن برای مجموعه تست وجود دارد12فقط •.روشن، خاموش، توقف، رفتن، سکوت، ناشناخته است

عدد اول یا سکوت 10برچسب ناشناخته باید برای یک دستور استفاده شود که یکی از •.نیست

برای کلیپ صوتی در مجموعه تست، شما باید برچسب صحیح را پیش بینی کنید.

فایل ارسال باید شامل یک هدر و قالب باشد.

kaggleیادگیری عمیق، کراس و رقابت های 67

kaggleیادگیری عمیق، کراس و رقابت های 68

مدل

kaggleیادگیری عمیق، کراس و رقابت های 69

خالصه مدل

kaggleیادگیری عمیق، کراس و رقابت های 70

نتایج

kaggleیادگیری عمیق، کراس و رقابت های 71

نتایج

kaggleیادگیری عمیق، کراس و رقابت های 72

نتایج

kaggleیادگیری عمیق، کراس و رقابت های 73

منابع

• https://www.kaggle.com/voglinio/keras-directory-iterator-lb-0-72

• https://www.kaggle.com/c/tensorflow-speech-recognition-challenge/kernels?sortBy=hotness&group=everyone&pageSize=20&competitionld=7634&kerneIType=Notebook

kaggleیادگیری عمیق، کراس و رقابت های 74

Zahra zinaty

kaggleیادگیری عمیق، کراس و رقابت های 75

Competition: Invasive Species Monitoring

Identify images of invasive hydrangea

Kernel: Visualization using CV2 and Keras

Starter

kaggleیادگیری عمیق، کراس و رقابت های 76

invasive species can have damaging effects on the environment, the

economy, and even human health. Despite widespread impact, efforts to track

the location and spread of invasive species are so costly that they’re difficult

to undertake at scale.

Because scientists cannot sample a large quantity of areas, some machine

learning algorithms are used in order to predict the presence or absence of

invasive species in areas that have not been sampled.

In this playground competition,

Kaggles are challenged to develop

algorithms to more accurately identify

whether images of forests and foliage

contain invasive hydrangea or not.

Introduction

of the

problem

Data Description

kaggleیادگیری عمیق، کراس و رقابت های 77

The data set contains pictures taken in a Brazilian national forest. In some of the

pictures there is Hydrangea, a beautiful invasive species original of Asia.

File Descriptions

train.7z - the training set (contains 2295 images).

train_labels.csv - the correct labels for the training set.

test.7z - the testing set (contains 1531 images), ready to be labeled by your

algorithm.

sample_submission.csv - a sample submission file in the correct format.

Data fields

name - name of the sample picture file (numbers)

invasive - probability of the picture containing an invasive species. A

probability of 1 means the species is present.

Kernel

description

kaggleیادگیری عمیق، کراس و رقابت های 78

Section 1: Image Visualization

In this section , we show some images on the training images,

as well provide some filters using cv2.

78

Kernel description

kaggleیادگیری عمیق، کراس و رقابت های 7979

80

Kernel description

80

An image that is

zero padded

Why we use of zero padding in convolutional networks ?

if the filter size is large relative to the input image size,

then without zero padding the output image will be much

smaller, and after a few layers you will be left with just a

few pixels. So to maintain a reasonably sized output, you

need zero-padding .

2. Network Architecture

kaggleیادگیری عمیق، کراس و رقابت های

kaggleیادگیری عمیق، کراس و رقابت های 8181

No parameter

3*3*64*64+64 = 36928

3*3*128*64+128 = 73856

3*3*128*128+128 = 147584

3*3*256*128+256 = 255168

3*3*64*3+64= 1792

ATTENTION

Kernel description

kaggleیادگیری عمیق، کراس و رقابت های 828282

18*18*256 = 82944

82944*256+256

256*1+1

No parameter

Kernel description

Evaluation

kaggleیادگیری عمیق، کراس و رقابت های 83

Submissions are evaluated between the predicted probability and the observed target.

Submission File:

For each image in the test set, you must predict a probability for the target variable on whether the image contains invasive species or not. The file should contain a header and have the following format:

Evaluation

kaggleیادگیری عمیق، کراس و رقابت های 84

https://www.kaggle.com/netzone/visualization-using-cv2-and-keras-

starter

References

kaggleیادگیری عمیق، کراس و رقابت های 12

Mohaddeseh Alikhani

9614163019

kaggleیادگیری عمیق، کراس و رقابت های 86

10 monkey speciesMonkey Classifier CNN (Xception ~0.90 acc)

Introduction

kaggleیادگیری عمیق، کراس و رقابت های 87

• The dataset consists of two files, training and validation.

• Each folder contains 10 subforders labeled as n0~n9.

• Each corresponding a species form Wikipedia’s monkey cladogram.

• Images are 400x300 px or larger and JPEG format (almost 1400 images).

Xception

kaggleیادگیری عمیق، کراس و رقابت های 88

Deep Learning with Depthwise Separable Convolutions

base_model = Xception(weights=weights,

include_top=False,

input_shape=(height, width, channels))

Xception

kaggleیادگیری عمیق، کراس و رقابت های 89

Xception

kaggleیادگیری عمیق، کراس و رقابت های 90

Main Model

kaggleیادگیری عمیق، کراس و رقابت های 91

train_features, train_labels = extract_features(1097, train_generator)

test_features, test_labels = extract_features(272, test_generator)

history = model.fit(train_features,

train_labels,

epochs=30,

batch_size=batch_size,

shuffle=True,

validation_split=0.1,

callbacks=callbacks)

Validation

kaggleیادگیری عمیق، کراس و رقابت های 92

Validation

kaggleیادگیری عمیق، کراس و رقابت های 93

https://www.kaggle.com/crawford/monkey-classifier-cnn-xception-0-90-

acc

References

kaggleیادگیری عمیق، کراس و رقابت های 12

عارفه ساالری

kaggleیادگیری عمیق، کراس و رقابت های 95

Kernel : Use keras to classify Sea Lions

همعرفی مسئل

سال گذشته به شدت رو به کاهش 30جمعیت شیرهای دریایی در غرب اقیانوس اطلس درطول •اهش فهمیدن دالیل ک. بوده است، و موجب شده که این گونه در خطر جدی انقراض قرار بگیرند

رشد جمعیت، به منظور جلوگیری ازین واقعه، امری ضروری و مهم است، که مستلزم شمارش.ساالنه تعداد اسب های آبی است

حلی تعدادی محقق در شیالت آالسکا بر روی این موضوع در حال تحقیق اند، آنها به دنبال راه•.ی کنندآبی منطقه را شناسایهستند که بتوانند از روی عکس های هوایی تعداد دقیق اسب های

.نتایج این شمارش بسیار برای نجات این جمعیت حساس هستند•

.هدف این رقابت شمردن تعداد گونه های مختلف اسب های آبی است•

.در کرنل انتخابی ما از یک روش ساده مدل سازی در کراس استفاده شده است•

kaggleیادگیری عمیق، کراس و رقابت های 96

داده ها

kaggleیادگیری عمیق، کراس و رقابت های 97

داده ها

kaggleیادگیری عمیق، کراس و رقابت های 98

داده ها

kaggleیادگیری عمیق، کراس و رقابت های 99

داده ها

kaggleیادگیری عمیق، کراس و رقابت های 100

One hot

encoding

kaggleیادگیری عمیق، کراس و رقابت های 101

ارزیابی

kaggleیادگیری عمیق، کراس و رقابت های 102

ارزیابی

kaggleیادگیری عمیق، کراس و رقابت های 103

منابع

• https://www.kaggle.com/radustoicescu/use-keras-to-classify-sea-lions-0-91-accuracy

kaggleیادگیری عمیق، کراس و رقابت های 104

سعیده شیخ علیشاهی

kaggleیادگیری عمیق، کراس و رقابت های 105

Competition: Fruits Classification

معرفی مجموعه داده

هاFruits 360

dataset

:ازعبارتندکهمحبوبمیوهنوع60حاویتصاویرازباالکیفیتباایمجموعه•

یز،رآووکادوآووکادو،زردآلو،،(دیگرنوعدووقرمزقرمز،-طالییطالیی،:مختلفانواع)سیب•فروتگریپ،(صورتی،سفید)انگورفرنگی،توتخرما،گیالس،،(قرمر،زرد)موزتمشک،

.رهغیوپرتغال،(مختلفانواع)گالبیانار،لیمو،آناناس،کیوی،نارنگی،،(صورتی،سفید)

kaggleیادگیری عمیق، کراس و رقابت های 106

ایجاد مجموعهداده ها

Logitchیک دوربین • C920یکی از بهترین وب کم .برای فیلمبرداری از میوه ها استفاده شدولی با پشت میوه ها یک برگ کاغذ سفید به عنوان پس زمینه قرار گرفته شد.های موجود است

اختصاصی از توجه به تغییرات در شرایط نور،پس زمینه یکنواخت نبود بنابراین از یک الگوریتم.استفاده شد که میوه را از پس زمینه استخراج کنندflood fillنوع

Fruit recognitionدر مقاله ای با عنوان 2017/12/2این مجموعه داده ها در تاریخ •from images using deep learningمطرح شد.

.جمع آوری و ایجاد شد2018/2/8تا تاریخ 2017/2/25این مجموعه داده ها از تاریخ •

kaggleیادگیری عمیق، کراس و رقابت های 107

•Fruits 360 dataset

تصویر38409:تعداد مجموعه داده ها•

تصویر28736:تعداد مجموعه داده های آموزشی•

تصویر9673:تعداد مجموعه داده های ارزیابی•

(میوه ها)60:تعداد کالس ها•

پیکسل100*100:اندازه تصویر•

بعضی از آنها به واسطه. حاوی تصاویر با میوه های مختلف استmultiple fruitsتست پوشه •.این یک آزمایش عالی برای تشخیص واقعی است. میوه های دیگر پوشیده شده اند

.ستبا برچسب های مختلف نشان داده شده ا( به عنوان مثال سیب)انواع مختلفی از همان میوه •

kaggleیادگیری عمیق، کراس و رقابت های 108

kaggleیادگیری عمیق، کراس و رقابت های 109

بررسی kernel …

. ذخیره شده استRGBکانال برای 3پیکسل با 45*45تمام تصاویر با اندازه kernelدر این

استفاده از یک شبکه عصبی با دو الیهDense(128 ،نرون64نرون)

(256،128،128،128،128)استفاده از یک شبکه عصبی عمیق تر با پنج الیه پنهان

استفاده از شبکه عصبی کانولوشنCNN

kaggleیادگیری عمیق، کراس و رقابت های 110

بررسی kernel

(نرون64نرون و 128)Denseاستفاده از یک شبکه عصبی با دو الیه •

kaggleیادگیری عمیق، کراس و رقابت های 111

بررسی kernel…

(256،128،128،128،128)استفاده از یک شبکه عصبی عمیق تر با پنج الیه پنهان•

kaggleیادگیری عمیق، کراس و رقابت های 112

بررسی kernel…

CNNاستفاده از شبکه عصبی کانولوشن •

kaggleیادگیری عمیق، کراس و رقابت های 113

بررسی kernel

. ذخیره شده استRGBکانال برای 3پیکسل با 64*64تمام تصاویر با اندازه kernelدر این •

kaggleیادگیری عمیق، کراس و رقابت های 114

بررسی kernel…

CNNاستفاده از شبکه عصبی کانولوشن •

kaggleیادگیری عمیق، کراس و رقابت های 115

بررسی kernel…

CNNاستفاده از شبکه عصبی کانولوشن •

kaggleیادگیری عمیق، کراس و رقابت های 116

بررسی kernel…

CNNاستفاده از شبکه عصبی کانولوشن •

kaggleیادگیری عمیق، کراس و رقابت های 117

منابع

• https://www.kaggle.com/mcbean/fruit-classification-w-nn

• https://www.kaggle.com/naveenc131/cnn-with-accuracy-of-98

kaggleیادگیری عمیق، کراس و رقابت های 118

شناسایی نهنگ کوهان دار: رقابت(Humpback Whale Identification)

Data augmentation with keras: کرنل into CNN

قیاسیراضیه

kaggleیادگیری عمیق، کراس و رقابت های 119

لهمعرفی مسئ

نشدگرمدلیلبههانهنگجمعیتحفظوبازیابینهنگ،رویهبیصیدهاقرنازبعد•.استشدهسختبسیارغذا،صنعتبرایماهیگیریصنعترقابتوهااقیانوس

فعالیتبررسیبرایتصویرینظارتهایسیستمازهانهنگنجاتبهکمکبرایدانشمندان•.کنندمیاستفادههااقیانوس(تغییرات)

گونهاتکنندمیاستفادهتصاویردرآنهامنحصربفردهایویژگیوهانهنگدمشکلازآنها•.کنندشناساییراهانهنگمختلفهای

.شدمیانجامدستیصورتبهمراحلاینپیشسال40تا•

.استنهنگمختلفهایگونهشناساییبرایهاییالگوریتمارائهرقابتاینهدف•

kaggleیادگیری عمیق، کراس و رقابت های 120

خالصه ای از رقابت

kaggleیادگیری عمیق، کراس و رقابت های 121

2018ژانویه 10تاریخ شروع رقابت

2018ژوئیه 10تاریخ پایان

در حال فعالیت وضعیت رقابت

220تعداد تیم های شرکت کننده

238کنندگانتعداد رقابت

21تعداد کرنل های معرفی شده

Data augmentation with kerasبا بیشترین امتیازکرنل into CNN

مجموعه داده

Happyاستفادهمورددادهمجموعه• whale databaseهمینباسایتیتوسطکهاست.استشدهفراهمعنوان

•https://happywhale.com/home

.گرددیمشناساییتصویرپردازشهایالگوریتمتوسطنهنگنوعسایتدرتصویرورودبا•

مفراهعمومیمشارکتوتحقیقاتیموسساتتوسطکهاست25460شاملدادهمجموعهاین•.استشده

ازتستهایدادهتعدادموردایندر)تستبرایتصویر15610آموزشبرایتصویر9850•(استبیشترآموزش

کالس4251شامل•

کالسباقیهاست،نمونهبیشترینشاملکالسیک)استنامتوانهاکالسدرهادادهتوزیع•(.دارندنمونهیکتقریباها

.استمتغیرتصاویراندازه•

kaggleیادگیری عمیق، کراس و رقابت های 122

داده

kaggleیادگیری عمیق، کراس و رقابت های 123

...داده

kaggleیادگیری عمیق، کراس و رقابت های 124

فرایند کرنلتغییر اندازه تصویر

One hot encoding

متوازن سازی داده ها

ایجاد مدل

ارزیابی

kaggleیادگیری عمیق، کراس و رقابت های 125

ه تغییر اندازتصویر

64* 64تغییر اندازه تصاویر به •

kaggleیادگیری عمیق، کراس و رقابت های 126

985015610

On hot encoding

OneHotEncoderو LabelEncoderاستفاده از ترکیبی از •

kaggleیادگیری عمیق، کراس و رقابت های 127

985015610

ویژگیشناسه

سیب1

موز2

پرتقال3

سیب4

ویژگیشناسه

11

22

33

41

پرتقالموزسیبشناسه

1100

2010

3001

4100

Lable encodind

One hot encodind

On hot encoding

kaggleیادگیری عمیق، کراس و رقابت های 128

985015610

متوازن سازیداده

kaggleیادگیری عمیق، کراس و رقابت های 129

( 1: برای حل مشکل متوازن سازی داده ها از دو روش در این کرنل استفاده شده است•(در کراسclass_weightتنظیم )یادگیری بیشتر از کالس اقلیت

متوازن سازی...داده

اضافه کردن داده ها( 2

kaggleیادگیری عمیق، کراس و رقابت های 130

985015610

جا به جایی چرخش تصویرنرمال سازیتصویر

چرخش افقی تصویر

ایجاد مدلCNN

kaggleیادگیری عمیق، کراس و رقابت های 131

3*3 c

onv

48

3*3 c

onv

48

Max

pool/

2

5*5 c

onv

48

Max

pool/

3

dro

pout

(0.3

3)

Fla

tten

Den

se

36

dro

pout

(0.3

3)

Den

se

36

Den

se

4251

Rel

u

Sig

moid

Sig

moid

Sig

moid

Sig

moid

Soft

max

خالصه مدل ...

kaggleیادگیری عمیق، کراس و رقابت های 132

یمعیار ارزیاب

. استMean Average precision(MAP@5 )معیار ارزیابی این رقابت •

MAP@5 =1

𝑈

𝑢=1

𝑈

𝑘=1

min(𝑛,5)

𝑝(𝑘)

U :تعداد تصاویر

𝑝 𝑘 : دقت در بخشk

n :تعداد پیش بینی ها برای هر تصویر

: اما معیار ارزیابی مورد استفاده کرنل•Accuracy

Categorical cross entropy

kaggleیادگیری عمیق، کراس و رقابت های 133

ی معیار ارزیاب...

kaggleیادگیری عمیق، کراس و رقابت های 134

منابع

• http://www.stephacking.com/encode-categorical-data-labelencoder-onehotencoder-python/

• https://www.kaggle.com/gimunu/data-augmentation-with-keras-into-cnn/notebook

kaggleیادگیری عمیق، کراس و رقابت های 135

زینب کوه کن

kaggleیادگیری عمیق، کراس و رقابت های 136

Iceberg Classifier Challenge: رقابت

kaggleیادگیری عمیق، کراس و رقابت های 137

شرکت های طراح مسئله

kaggleیادگیری عمیق، کراس و رقابت های 138

مسئله؟

kaggleیادگیری عمیق، کراس و رقابت های 139

طراحی الگوریتمی که تشخیص دهد هدف ارزیابیا شده توده یخ شناور است ی

کشتی؟

ئلهفرضیات مس

یکدرراتصویرمنطقهکهاستمعنیبدانکهاستجانبیراداریکSentinel-1ماهواره•.بیندمی(inc_angle)بدنهمرکزیخطوبالریشهوتربینزاویه

•Sentinel-1کننددریافتوانتقالعمودیوافقیسطحدرتوانندمی.

.گویندمیbackscatterیابازتابندهراشودمیمنعکسماهوارهسمتبهجسمازکهانرژی•

.استمتفاوتمختلفاجسامازدریافتیانرژی•

بتوانتا،گیردقرارتحلیلمورداندازهروشنایی،شکل،مانندخاصیهایمشخصهطبقبایدشی•.یافتراآن

kaggleیادگیری عمیق، کراس و رقابت های 140

ئلهفرضیات مس

:ببینیدکانالدوباراهادادهمسابقه،اینبرای•

kaggleیادگیری عمیق، کراس و رقابت های 141

HH

HV

به صورت انرژیدریافت/ انتقال افقی

انرژی افقی و دریافتانرژیانتقالعمودی

داده ها

. برچسب ها توسط کارشناسان انسانی و دانش جغرافیایی در مورد هدف ارائه شده است•

.با دو باند است75*75همه تصاویر •

.ارائه شده اندjsonدر قالب ( test.json, train.json)اطالعات •

.دیک سری ویژگی وجود دارفایل ها شامل یک لیست از تصاویر هستند و برای هر تصویر •

kaggleیادگیری عمیق، کراس و رقابت های 142

ویژگی-دادههر تصویر

kaggleیادگیری عمیق، کراس و رقابت های 143

idشناسه تصویر

band_1

,

band_2

پیکسل در لیست است، بنابراین 75*75هر گروه دارای . شده اندflatداده های تصویر .هستندdBو floatمقادیر . عنصر است5625لیست دارای

inc_a

ngleدر naداده های است، ازnaاین فیلد دارای داده های .که تصویر گرفته شده استزاویه ای

. داده آموزشی برای جلوگیری از نشت استفاده می شود

is_ice

berg

باشد، آن یک کشتی است و هرچه به 0باشد، شی یک کوه یخ است و اگر 1متغیر هدف، اگر train.jsonاین فیلد فقط در . یک نزدیک تر باشد احتمال کوه یخ بودن آن بیشتر است

.وجود دارد

داده خروجی

0ینبعددیک)یخکوهیکحاویتصویراینکهاحتمالبایدآزمون،مجموعهدرشناسههربرای•.کنیدبینیپیشباشد،(1و

kaggleیادگیری عمیق، کراس و رقابت های 144

پیش پردازش

کهRGBمعادلتادیگر،کانالیککردناضافهبرایآنهامیانگینگرفتنوبانددواستخراج•.کنیمایجادراباشدمیکانالسهدارای

kaggleیادگیری عمیق، کراس و رقابت های 145

همعماری شبک

kaggleیادگیری عمیق، کراس و رقابت های 146

همعماری شبک

kaggleیادگیری عمیق، کراس و رقابت های 147

CNN ModelC

onv

blo

ck 1

Co

nv

blo

ck 2

Co

nv

blo

ck 3

Co

nv

blo

ck 4

Cla

ssif

ier

Den

se

con

v2

D

con

v2

D

con

v2

D

con

v2

D

Max

Poo

l

Max

Poo

l

Max

Poo

l

Max

Poo

l

Dro

pO

ut

Dro

pO

ut

Dro

pO

ut

Dro

pO

ut

Den

se

Fla

tten

Den

se

(75,75,3)

relue relue relue relue relue

(36,36,64) (17,17,128) (7,7,128) (2,2,64)

Sigmoid

kaggleیادگیری عمیق، کراس و رقابت های 148

هخالصه شبک

kaggleیادگیری عمیق، کراس و رقابت های 149

هخالصه شبک

kaggleیادگیری عمیق، کراس و رقابت های 150

ارزیابی

kaggleیادگیری عمیق، کراس و رقابت های 151

منابع

• https://www.kaggle.com/c/statoil-iceberg-classifier-challenge

• https://www.kaggle.com/devm2024/keras-model-for-beginners-0-210-on-lb-eda-r-d

kaggleیادگیری عمیق، کراس و رقابت های 152

پگاه گازری

kaggleیادگیری عمیق، کراس و رقابت های 153

Competition:

Understanding the Amazon from Space

بیناززمینیکرهسراسرهایجنگلازفوتبالزمین48یاندازهبهمساحتیدقیقه،هردر•کاهشموجبزداییجنگل.دارندبیشتریسهمآمازونهایجنگلمیانایندرورودمی

میدیگرویرانگراثراتوهواییوآبتغییراتحیوانات،زیستگاهرفتنبیناززیستی،تنوعمیهاجنگلدرانساندستکاریوزداییجنگلمحلمورددراطالعاتآوریجمعلذا.گردد.کننداقدامراستاایندرمؤثرتروترسریعتاکندکمکذینفعانوهادولتبهتواند

وآمازونبارانیهایجنگلازشدهتهیهایماهوارهتصاویربهزدنبرچسبرقابتاینهدف•.استگرفتهصورتزداییجنگلچراوچگونهکجا،کهاستموضوعایندرکوتشخیص

Multilabelنوعازوکامپیوتربینایییدرحوزهمسئلهاین• Classificationاست.

پارنترو(زمینازتصویربرداریهایماهوارهترینبزرگیسازندهوطراح)Planetشرکت•شرایطدرکهایماهوارهتصاویربهزدنبرچسببرایرارقابتاینSCCONاشبرزیلی.اندکردهایجاداست،شدهتهیهزمینمختلفهایپوششومختلفجوی

له معرفی مسئو هدف آن

kaggleیادگیری عمیق، کراس و رقابت های 12

kaggleیادگیری عمیق، کراس و رقابت های 155155155

د تصاویر موراستفاده

اصلیتصویرازکوچکقسمتی).شودمیگفتهChipیکمسئلهاینبرایاستفادهموردتصاویرازیکهربه•المللیبینایستگاهمدارو(SSO)خورشیدباهماهنگمداردورویبرPlanetهایماهوارهتوسطشدهتهیه

((ISS)فضاییوRed،Green،Blueکانالچهاردارایو(جغرافیاییاطالعاتحاوی)TIFFGeoفرمتبهاصلیتصاویر•

Near Infraredاست.ازاستفادهبا).اندشدهتبدیلJPGفرمتبهوپردازشPlanetتوسطرقابتاینبرایتصاویرهایچیپ•

Visual Product Processor)برزیل،مانند)آمازونیحوضهکشور8ازو2017فوریه1الی2016ژانویه1زمانییبازهدرتصاویراین•

.استشدهتهیه(...وونزوئالکلمبیا،

kaggleیادگیری عمیق، کراس و رقابت های 156156156

ورودی و خروجی های

مسئله

میتقسیمValidationوTrainبخشدوبه)آموزشییداده40479:مسئلهورودیهایداده•(شوند

مرتبطهایبرچسبازلیستیک،Testهایدادهدرموجودتصاویرازیکهربرای:مسئلهخروجی•.اندشدهجداهمازSpaceباکهن،فراواگیاهیهایپوششجوی،شرایط)طبیعیهایپدیدهنامازایزیرمجموعه:تصاویربرچسب•

.اندشدهایجادPlanetتیمتوسطکهاستآمازونهایجنگلیحوضهدر(کمیابگیاهیهایپوشش

Agriculture

Artisinal_Mine

Blooming

Blow_Down ClearCloudy

Conventional_Mine

Cultivation

Habitation

Haze

Partly_Cloudy

Road

Bare_Ground

Selective_Logging

Slash_Burn

Water

kaggleیادگیری عمیق، کراس و رقابت های 157157157

ورودی و خروجی های

مسئله

kaggleیادگیری عمیق، کراس و رقابت های 158158158

معیار موفقیت و پروتکل ارزیابی

تصاویربهشدهدادهاختصاصهایبرچسبتوزیعآوردندستبه:سیستمنهاییهدف•

(Scikit-LearnیکتابخانهازBeta=2باFBeta_Score)F2_Score:موفقیتمعیار•

1و0بینمقداریدارایوRecallوPrecisionازوزنیهارمونیکمیانگینیکمعیاراین•برایمعیارهاییمجموعدرهاF-Sore.استتربهینهباشدترنزدیکیکبهچههرکهاست

.هستندتستصحتارزیابی

بهScikit-LearnیکتابخانهازمتدیکمکباTrain(40479)هایداده:ارزیابیپروتکل•دادهتعداد.گرددمیتقسیمValidation(8096)وTrain(32383)بخشدوبهتصادفیطور.استمورد40669نیزTestهای

پیش پردازشداده ها

:ValidationوTrainبخشدوبهTrainهایدادهتقسیم•

One-Hotعملیات• Encodingتابعازاستفادهبدونودستیصورتبهto_categoricalبرای.استشدهانجامهابرچسب

اتریسم+هابرچسبتعداد=ستونتعدادوآموزشیهایدادهکل=سطرتعدادباصفرماتریسیکایجادهابرچسبحاوی

train_labels, valid_labels = train_test_split(labels_df, test_size = 0.2)

Scikit-Learnمتدی از کتابخانه ی

column_df = pd.DataFrame(np.zeros((labels_df.shape[0],17)), columns = label_names)labels_df = pd.concat([labels_df,column_df],axis = 1, join = 'inner')

Validationدرصد برای 20

kaggleیادگیری عمیق، کراس و رقابت های 159

پیش پردازش...داده ها

•Rescale255برتقسیمباهاپیکسلمقادیرکردن.(کالسکمکباImageDataGenerator)

بهClass_Modeو128*128تصاویرابعاد،Generaorشئازflow_from_direcoryمتددر•Multilabelمانمسئلهنوعآنکهدلیل ClassificationفرمبهاستSparse(تعدادبردار؛یک

.بودخواهد(هابرچسب=هاستون

DataتکنیکازOverfittingبروزازجلوگیریمنظوربه• AugmentationهایدادهرویبرTrain(متدهایFlip, Shift, Rotation)یکهمچنینوPre-Trained Networkاستفاده

.استشده

kaggleیادگیری عمیق، کراس و رقابت های 160

همعماری شبک

شدهاستفادهVGG19یدیدهآموزشپیشیشبکهازباالهایالیهبرای•ClassifierبخشوتغییربدونConvolutionبخششبکه،ایندر.است

تمامیدر.است128*128*3ابعاددارایشبکهورودی.استشدهحذفPaddingمقدارConvolutionهایالیه = ‘same’واستBorder

Effectدهدنمیرخ.

.استشدهبارگذاریفایلیکدرونازشبکهاینهایوزن•

weights_path = '../input/vgg19-

weights/vgg19_weights_tf_dim_ordering_tf_kernels_notop.h5'

0 input_1 False

1 block1_conv1 False

2 block1_conv2 False

3 block1_pool False

4 block2_conv1 False

5 block2_conv2 False

6 block2_pool False

7 block3_conv1 False

8 block3_conv2 False

9 block3_conv3 False

10 block3_conv4 False

11 block3_pool False

12 block4_conv1 False

13 block4_conv2 False

14 block4_conv3 False

15 block4_conv4 False

16 block4_pool False

17 block5_conv1 False

18 block5_conv2 False

19 block5_conv3 False

20 block5_conv4 False

21 block5_pool False

22 flatten_1 True

23 batch_normalization_1

True

24 dense_1 Truekaggleیادگیری عمیق، کراس و رقابت های 161

ه معماری شبک...

وBatchNormalizationیالیهیک،FlattenیالیهیکدارایجدیدClassifierبخش●نیزآنActivationتابعوخروجیکالس17دارایDenseیالیه.استDenseسپس

Sigmoidاست.

شدنUpdateازتااندشدهFreezeشبکهازConvolutionهایالیه،Trainعملیاتازپیش●تبدیلNon-Trainableبهآنگاهباشد21تا0بینالیهیشمارهاگر.شودجلوگیریهاالیهاینوزن.کنیممیFreezeراآناولیالیه22کهداریمالیه25مجموعدریعنی.شودمی

set_non_trainable_layers(base_model, 0, 21)

kaggleیادگیری عمیق، کراس و رقابت های 162

ه معماری شبک...

kaggleیادگیری عمیق، کراس و رقابت های 163

Convolu

tion2

D

Max

Pooli

ng

2D

Convolu

tion

2D

Convolu

tio

n2D

Max

Pooli

ng

2D

Convolu

tion

2D

Convolu

tion

2D

Convolu

tio

n2D

Convolu

tion

2D

Convolu

tio

n2D

Max

Pooli

ng

2D

Convolu

tion

2D

Convolu

tio

n2D

Convolu

tion

2D

Convolu

tio

n2D

Max

Pooli

ng

2D

Convolu

tion

2D

Convolu

tio

n2D

Convolu

tion

2D

Convolu

tio

n2D

Max

Pooli

ng

2D

Fla

tten

Bat

chN

orm

aliz

atio

n

Den

se

Block 1

(Frozen)Fully

Connected

(Trainable)

Block 2(Frozen)

Block 3(Frozen)

Block 4(Frozen)

Block 5(Frozen)

Classificationمسئولیت

را بر عهده دارندتر Abstractو ویژگی های

.را استخراج می کنند

را Feature Extractionوظیفه ی Poolingو Convolutionالیه های را (لبه ها، رنگ و بافت تصویر)بر عهده دارند و ویژگی های عمومی و محلی

.استخراج می کنند

ه معماری شبک...

ایندکنتغییرآموزشحیندرقبلییالیهپارامترهایتغییرباالیه،هرهایورودیتوزیعاگر•طیشرایدر.گرددمیپارامترهااولیهمقداردهیسرعتکاهشویادگیرینرخکاهشباعثمسئله

covariateمشکلدچاراصطالحاًکندتغییریادگیریحالدرسیستمِیکهایورودیتوزیعکه

shiftInternalیالیهیککردناضافهباکهاستشدهBatchNormalizationمشکلاین.کندمیپیدابیشتریشتابشبکهآموزشوکاهشحدودیتا

هردرقبلیهایالیههایActivationشدننرمالموجبBatchNormalizationیالیه•Batchمیانگینِتبدیل،یکاجرایطریقازدیگرعبارتبه.گرددمیActivationقبلیالیه

برخیدرعالوهبه.داردمینگهیکبهنزدیکراActivationمعیارِانحرافوصفربهنزدیکرا.کندمیبرطرفراDropoutازاستفادهبهنیازوکردهعملRegularizerیکمانندموارد

kaggleیادگیری عمیق، کراس و رقابت های 164

خالصه ای از مدل

kaggleیادگیری عمیق، کراس و رقابت های 165

Layer (type) Output Shape Param #

=================================================================input_1 (InputLayer) (None, 128, 128, 3) 0

_________________________________________________________________

block1_conv1 (Conv2D) (None, 128, 128, 64) 1792

_________________________________________________________________

block1_conv2 (Conv2D) (None, 128, 128, 64) 36928

_________________________________________________________________

block1_pool (MaxPooling2D) (None, 64, 64, 64) 0

_________________________________________________________________

block2_conv1 (Conv2D) (None, 64, 64, 128) 73856

_________________________________________________________________

block2_conv2 (Conv2D) (None, 64, 64, 128) 147584

_________________________________________________________________

block2_pool (MaxPooling2D) (None, 32, 32, 128) 0

_________________________________________________________________

block3_conv1 (Conv2D) (None, 32, 32, 256) 295168

_________________________________________________________________

block3_conv2 (Conv2D) (None, 32, 32, 256) 590080

_________________________________________________________________

block3_conv3 (Conv2D) (None, 32, 32, 256) 590080

_________________________________________________________________

block3_conv4 (Conv2D) (None, 32, 32, 256) 590080

_________________________________________________________________

block3_pool (MaxPooling2D) (None, 16, 16, 256) 0

_________________________________________________________________

block4_conv1 (Conv2D) (None, 16, 16, 512) 1180160

_________________________________________________________________

3×3×3×64+64

3×3×64×64+64

3×3×64×128+128

تعداد کانال ها (RGB)

ابعاد فیلتر

تعداد فیلترها

بایاسStride = (2,2)

Padding=“same

= خروجی الیه قبل ورودی الیه جدید

64*3*3پنجره های ما عدد از 128هستند و

.این پنجره ها داریم

. ابدبه مرور تعداد فیلتر ها زیاد و طول و عرض تصویر کاهش می ی

خالصه ای از ...مدل

kaggleیادگیری عمیق، کراس و رقابت های 166

block4_conv2 (Conv2D) (None, 16, 16, 512) 2359808

_________________________________________________________________

block4_conv3 (Conv2D) (None, 16, 16, 512) 2359808

_________________________________________________________________

block4_conv4 (Conv2D) (None, 16, 16, 512) 2359808

_________________________________________________________________

block4_pool (MaxPooling2D) (None, 8, 8, 512) 0

_________________________________________________________________

block5_conv1 (Conv2D) (None, 8, 8, 512) 2359808

_________________________________________________________________

block5_conv2 (Conv2D) (None, 8, 8, 512) 2359808

_________________________________________________________________

block5_conv3 (Conv2D) (None, 8, 8, 512) 2359808

_________________________________________________________________

block5_conv4 (Conv2D) (None, 8, 8, 512) 2359808

_________________________________________________________________

block5_pool (MaxPooling2D) (None, 4, 4, 512) 0

_________________________________________________________________

flatten_1 (Flatten) (None, 8192) 0

_________________________________________________________________

batch_normalization_1 (Batch (None, 8192) 32768

_________________________________________________________________

dense_1 (Dense) (None, 17) 139281

===========================================================

======

Total params: 20,196,433

Trainable params: 155,665

Non-trainable params: 20,040,768

_________________________________________________________________

4×4×512

تعداد کالس های خروجی

8192×17+17

:نهاییFeature Mapاندازه ی

.استConvolutionبیشتر بار محاسباتی بر روی الیه های

آموزش مدل

گرفتهنظردر-5توانبه10آنیادگیرینرخوداردنامAdamاستفادهموردOptimizerتابع●محاسباتیلحاظازتابعاین.شودمیاستفادهتصادفیهدفتوابعسازیبهینهبرایتابعاین.استشده

وزیادپارامترهایزیاد،هایدادهکهاستمسائلیمناسبوداردنیازکمیMemoryبهواستبهینه.دارند(Non-Stationary)غیرثابتاهدافیا

Multilabelاینجادرمسئلهآنکهدلیلبه● Classification،تابعازاستBinary_Crossentropyاستشدهاستفاده.

kaggleیادگیری عمیق، کراس و رقابت های 167

model.compile(optimizer= Adam(lr=1e-5) , loss='binary_crossentropy', metrics = [f2_score])

model.fit_generator(train_generator, steps_per_epoch = 506, epochs = 10 , verbose = 1,

validation_data = (fixed_val_imgs,fixed_val_labels) , callbacks = [checkpoint, reduce_lr],

workers = 4)

آموزش مدل ...

•Callback : توابعی هستند که در هر مرحله از فرآیند آموزش می تون آنها را بر روی مدل اعمال. نمود

•Worker:درکهاستهاییپردازشتعدادماکزیممیدهندهنشانواستصحیحعددیکProcess-Based Threadingشودمیاستفاده.

•Checkpoint:هرپایاندرمدلهایوزنسازیذخیرهبرایEpochمسیر،:پارامترها).است(Overwritingازجلوگیریبررسی،موردکمیت

•ReduceLR:نرخمقدارشود،میرکوددچارمدلیادگیریومتوقفمتریکبهبودکهزمانینرخلحداقیادگیری،نرخکاهشضریببررسی،موردکمیت:پارامترها).یابدمیکاهشیادگیری(جدیدیبهینهیآستانهیادگیری،

kaggleیادگیری عمیق، کراس و رقابت های 168

خروجی مدل

وکردهغیرفعالراShuffleشده،Rescaleتستِهایدادهباآزمایشاجرایجهت•Test_GeneratorتابعبهراشدهتولیدPredictاستداده.

شودمیدادهنمایشستون17وسطر40669بااسپارسماتریسیکفرمبهبینیپیشینتیجه•آرایهکیدرونرامتناسبلیبلنامبود،یکدرایهمقدارکهجاهرسطر،هردرتابع،یکباسپسو

.کندمیJoinیکدیگربهفاصلهیکباراآرایههرراآرایهعناصرنهایتدرودهدمیقرار

kaggleیادگیری عمیق، کراس و رقابت های 169

نتیجه نهایی

.هستندزیرصورتبهTestهایدادهبهشدهدادهاختصاصهایبرچسبتوزیع•وPrimary،Clear،Agriculture،Roadبهمربوطهابرچسبپرتکرارترین•

Partly_Cloudyاست.

kaggleیادگیری عمیق، کراس و رقابت های 170

12

35

4

Agriculture

Clear

Partly_Cloudy

Primary

Road

• https://www.kaggle.com/saksham219/satellite-amazon-model-keras-

vgg19-adam/notebook

• http://scikit-learn.org/ stable/modules/generated/

sklearn.metrics.fbeta_score.html#sklearn.metrics.fbeta_score

• https://en.wikipedia.org/wiki/F1_score

• “Batch Normalization: Accelerating Deep Network Training by

Reducing Internal Covariate Shift”, Ioffe and Szegedy, 2014منابع

kaggleیادگیری عمیق، کراس و رقابت های 12

Akram Nejati

kaggleیادگیری عمیق، کراس و رقابت های 172

carvanaتصاویر : رقابت

شناسایی مرزهای ماشین در یک تصویر بطور خودکار

Carvana

kaggleیادگیری عمیق، کراس و رقابت های 173

Competition Timeline Start Date: July 26, 2017Merger Deadline: September 20, 2017Entry Deadline: September 20, 2017End Date: September 27, 2017 11:59 PM UTC

• COMPETITION-SPECIFIC TERMS

• COMPETITION NAME (the 'Competition'):Carvana Car Image Masking

• COMPETITION SPONSOR: Carvana LLC

• COMPETITION WEBSITE: https://www.kaggle.com/c/carvana-image-masking-challenge

• PRIZES: $25,000

• 1st Place - $12,000

• 2nd Place - $8,000

• 3rd Place - $5,000

• Submission Limits

• You may submit a maximum of 5 entries per day.

• You may select up to 2 final submissions for judging.

• 735 teams

Carvana…

• Carvana is a technology business start-up based in Phoenix, Arizona.

• It is an online-only used car dealer that allows customers to shop,finance, and trade in cars through their website.

• It was founded in 2012 as a subsidiary of DriveTime and was spun outin 2014;

• it held an IPO in 2017 and Ernest Garcia II, the chairman of DriveTime,was the largest shareholder at the time

• Ranked fifth in the Forbes list of promising US companies in 2015

https://www.carvana.com/

kaggleیادگیری عمیق، کراس و رقابت های 174

Overview in kaggel

• Carvana, a successful online used car startup, has seen opportunity to build long term trust with consumers and streamline the online buying process.

• An interesting part of their innovation is a custom rotating photostudio that automatically captures and processes 16 standard images ofeach vehicle in their inventory. While Carvana takes high qualityphotos, bright reflections and cars with similar colors as thebackground cause automation errors, which requires a skilled photoeditor to change.

kaggleیادگیری عمیق، کراس و رقابت های 175

Overview in kaggel

Goal:

• In this competition, you’re challenged to develop an algorithm thatautomatically removes the photo studio background. This will allowCarvana to superimpose cars on a variety of backgrounds. You’ll beanalyzing a dataset of photos, covering different vehicles with a widevariety of year, make, and model combinations.

kaggleیادگیری عمیق، کراس و رقابت های 176

winner's interview

• Team best

• Albu: Alexander Buslaev

• Asanakoy: Artsiom Sanakoyeu

• Ternaus: Vladimir Iglovikov

• The objective of this competition was to create a model for binary segmentation of high-resolution car images.

• Each image has resolution 1918x1280.

• Each car presented in 16 different fixed orientations:

• The score difference between our result (0.997332) and the second place (0.997331) result was only 0.00001, which can be interpreted as an average 2.5-pixel improvement per 2,500,000-pixel image. To be honest, we just got lucky here. When we prepared the solution for the organizers, we invested some extra time and improved our solution to 0.997343 on the private LB.

we had around 20 GPUs at our disposal.

kaggleیادگیری عمیق، کراس و رقابت های 177

Challenge

• Most of the observed mistakes were due to the inconsistent labeling,where the most common issue was holes in the wheels. In some cars,they were masked and in some they were not.

• We don't have a validation score for the test set, but we foundproblematic images by counting the number of pixels where thenetwork prediction confidence was low. To account for the differentsize of the cars in the images, we divided this number by the area ofthe background.

• We believe that it was due to the low presence of white vans in thetraining set and to the low contrast between the van and the whitebackground. The image below shows gray areas in the mask where theprediction confidence was low.

kaggleیادگیری عمیق، کراس و رقابت های 178

Challenge…

Now I believe that initialization of UNet type architectures with pre-trained weights does improves convergence and performance ofbinary segmentation on 8-bit RGB input images. When I tried UNetwith encoder based on VGG-11 I easily got 0.972 (top 10 at PublicLeaderboard).

For image augmentation, I used horizontal flips, color augmentationsand transforming a car (but not background) to grayscale.

kaggleیادگیری عمیق، کراس و رقابت های 179

Data Description

• This dataset contains a large number of car images (as .jpg files). Each car has exactly 16 images, each one taken at different angles.

• Each car has a unique id and images are named according to id_01.jpg, id_02.jpg ... id_16.jpg.

• In addition to the images, you are also provided some basic metadata about the car make, model, year, and trim.

• For the training set, you are provided a .gif file that contains the manually cutout mask for each image.

• The competition task is to automatically segment the cars in the images in the test set folder

kaggleیادگیری عمیق، کراس و رقابت های 180

Data Description

...

• Train set: 5088 Images.

• Test set: 1200 in Public, 3664 in Private, 95200 were added to prevent hand labeling

• Test set 100000.

kaggleیادگیری عمیق، کراس و رقابت های 181

Evaluation

• This competition is evaluated on the mean Dice coefficient. The Dice coefficient can be used to compare the pixel-wise agreement between a predicted segmentation and its corresponding ground truth. The formula is given by:

• here X is the predicted set of pixels and Y is the ground truth. The Dice coefficient is defined to be 1 when both X and Y are empty. The leaderboard score is the mean of the Dice coefficients for each image in the test set.

• def dice_coef(y_true, y_pred):

• y_true_f = K.flatten(y_true)

• y_pred_f = K.flatten(y_pred)

• intersection = K.sum(y_true_f * y_pred_f)

• return (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)

kaggleیادگیری عمیق، کراس و رقابت های 182

Kernel• It may be too late to get useful results from this kernel but I decided to

make it public anyway. When I run it on my MacBook I get decent results but the validation accuracy improves vey slowly. Using all images from the train set produces Ok maks but nothing comparable to what one can do with U-Net.

kaggleیادگیری عمیق، کراس و رقابت های 183

Unet-SegNet

• SegNet-Tutorial

• (for example by using the webcam demo) by removing the line sample_weights_test: true on all Dropout layers, and setting batch size of 1.

• Unet

kaggleیادگیری عمیق، کراس و رقابت های 184

Concatenate

It takes as input a list of tensors, all of the same shape except for the concatenation axis, and returns a single tensor, the concatenation of all inputs.

• Arguments

• axis: Axis along which to concatenate.

• **kwargs: standard layer keyword arguments.

kaggleیادگیری عمیق، کراس و رقابت های 185

Library

kaggleیادگیری عمیق، کراس و رقابت های 186

from sklearn.model_selection import train_test_split

from keras.models import Modelfrom keras.layers import Input, merge, Conv2D, MaxPooling2D, UpSampling2D, Concatenate#from keras.layers import Dense, Conv2D, Input, MaxPool2D, UpSampling2D, Concatenate, Conv2DTransposefrom keras.optimizers import Adamfrom keras.optimizers import SGDfrom keras.callbacks import ModelCheckpoint, LearningRateScheduler, EarlyStoppingfrom keras.preprocessing.image import array_to_img, img_to_array, load_img, ImageDataGeneratorfrom keras import backend as K

metadata.csv sample_submission.csv test train train_masks train_masks.csv

Using TensorFlow backend.

Visualizing

intermediate

Read picture

JPEG TO RGB

Convert to tensor

Rescle[0,1]K.set_image_dim_ordering('th') # Theano dimension ordering in this code

Number of data train,

test

• INPUT_PATH = '../input/'

• dims = [128, 128]

• img_rows = dims[0]

• img_cols = dims[1]

• train = sorted(glob.glob(INPUT_PATH + 'train/*.jpg'))

• masks = sorted(glob.glob(INPUT_PATH + 'train_masks/*.gif'))

• test = sorted(glob.glob(INPUT_PATH + 'test/*.jpg'))

• print('Number of training images: ', len(train), ' Number of corresponding masks: ', len(masks), ' Number of test images: ', len(test))

kaggleیادگیری عمیق، کراس و رقابت های 187

Data set -convert

kaggleیادگیری عمیق، کراس و رقابت های 188

Convolutional neural network

(learn feature-

More depth and less size)

kaggleیادگیری عمیق، کراس و رقابت های 189

No border effect

No much pooling

Because of the

disappearance of

the location

Convolutional neural network

(learn feature-

More depth and less size)

kaggleیادگیری عمیق، کراس و رقابت های 190

Model

kaggleیادگیری عمیق، کراس و رقابت های 191

similarity

Extract the

feature map

parameter gradienta

maximum norm

Summary

kaggleیادگیری عمیق، کراس و رقابت های 192

Summary

kaggleیادگیری عمیق، کراس و رقابت های 193

epoch

• model.fit_generator(train_gen, steps_per_epoch=50, epochs=1, validation_data=validation_gen, validation_steps=50)

kaggleیادگیری عمیق، کراس و رقابت های 194

augmentation

Version1

• def build_model(img_w, img_h, filters):

n_labels = 2

kernel = 3

encoding_layers = [ Conv2D(64, (kernel, kernel), input_shape=(img_h, img_w, 3), pad

di ng='same'),

BatchNormalization(),

Activation('relu'),

Convolution2D(64, (kernel, kernel), padding='same'),

BatchNormalization(),

Activation('relu'),

MaxPooling2D(),

• optimizer = SGD(lr=0.001, momentum=0.9, decay=0.0005, nesterov=False)

• model.compile (loss="categorical_crossentropy", optimizer=optimizer, metrics=['accur

acy'])

kaggleیادگیری عمیق، کراس و رقابت های 195

Augment Method

flip

def random_flip(img, mask, u=0.5):

if np.random.random() < u:

img = image.flip_axis(img, 1)

mask = image.flip_axis(mask, 1)

return img, mask

img_flip, mask_flip = random_flip(img, mask, u=1)

plot_img_and_mask_transformed(img, mask, img_flip, mask_flip)

kaggleیادگیری عمیق، کراس و رقابت های 196

Augment Method …

Random channel shift

def random_channel_shift(x, limit, channel_axis=2):

x = np.rollaxis(x, channel_axis, 0)

min_x, max_x = np.min(x), np.max(x)

channel_images = [np.clip(x_ch + np.random.uniform(-limit, limit), min_x, max_x) for x_ch inx]

x = np.stack(channel_images, axis=0)

x = np.rollaxis(x, 0, channel_axis + 1)

return x

kaggleیادگیری عمیق، کراس و رقابت های 197

Augment Method …

• Grayscale

• def random_gray(img, u=0.5):

• if np.random.random() < u:

• coef = np.array([[[0.114, 0.587, 0.299]]]) # rgb to gray (YCbCr)

• gray = np.sum(img * coef, axis=2)

• img = np.dstack((gray, gray, gray))

• return img

• Contrast

kaggleیادگیری عمیق، کراس و رقابت های 198

Augment Method …

def random_augmentation(img, mask):

img = random_channel_shift(img, limit=0.05)

img = random_brightness(img, limit=(-0.5, 0.5), u=0.5)

img = random_contrast(img, limit=(-0.5, 0.5), u=0.5)

img = random_saturation(img, limit=(-0.5, 0.5), u=0.5)

img = random_gray(img, u=0.2)

img, mask = random_rotate(img, mask, rotate_limit=(-20, 20), u=0.5)

img, mask = random_shear(img, mask, intensity_range=(-0.3, 0.3), u=0.2)

img, mask = random_flip(img, mask, u=0.3)

img, mask = random_shift(img, mask, w_limit=(-0.1, 0.1), h_limit=(-0.1, 0.1), u=0.3)

img, mask = random_zoom(img, mask, zoom_range=(0.8, 1), u=0.3)

return img, mask

kaggleیادگیری عمیق، کراس و رقابت های 199

References

• http://blog.kaggle.com/2017/12/22/carvana-image-masking-first-place-interview/

• https://en.wikipedia.org/wiki/Sørensen–Dice_coefficient

• https://keras.io/layers/merge/#concatenate

kaggleیادگیری عمیق، کراس و رقابت های 200

top related