ای یادگیری عمیق، کراس و رقابت ه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