Інтелектуальна система дослідження методів машинного навчання



Сторінка15/15
Дата конвертації27.01.2020
Розмір0,56 Mb.
ТипРеферат
1   ...   7   8   9   10   11   12   13   14   15

Модуль обробки даних


Основною ціллю модуля є отримання даних з файлової системи, а також збереження проміжних даних та відображення результату роботи системи.
      1. Клас utils


Таблиця 3.1 – Методи utils

Назва методу

Опис методу

Вхідні параметри

Вихідні параметри

Get_normalized_data

Отримання даних




Xtrain – перші 1000 даних для навчання

Xtest – перші 1000 для тестування

Ytrain-остані 1000 для навчання
Ytest-остані 1000 для тестування


Get_transformed_data

Отримання трансоформованих даних




Ztrain – перші 300 даних для навчання

Ztest – перші 300 для тестування



Ytrain-остані 1000 для навчання
Ytest-остані 1000 для тестування

predict

Отримання максимального очікуваного результату

list

Макс елемент

cost

Отримання cost

List, t

Повернення результату множення

benchmark

Перевірка через бенчмарк pca









      1. Клас keras


        Назва методу

        Опис методу

        Вхідні параметри

        Вихідні параметри

        Main

        Перевірка даних за допомогою keras






      2. tensorflow2


        Назва методу

        Опис методу

        Вхідні параметри

        Вихідні параметри

        Main

        Перевірка даних за допомогою tensorflow






      3. theano2


        Назва методу

        Опис методу

        Вхідні параметри

        Вихідні параметри

        Main

        Перевірка даних за допомогою theano







        Eror_rate

        Для пошуку середньої похибки

        Очікуваний результат, дані тестування

        Середнє значення

        relu

        Для випрамлення даних

        масив

        Повернення даних >0
      4. k_means


Назва методу

Опис методу

Вхідні параметри

Вихідні параметри

Main

Реалізація k-means







dbi

співвідношення між сумою відхилень між 2 кластерами

Ознаки зображень

Dbi-індекс

purity

Отримання нормалізації

ознаки

Purity-індекс

Bugging

Використання методу оптимізації bugging

Тестувальні та перевірочні дані

Повернення макс реузльтату

boosting

Використання методу оптимізації boosting

Тестувальні та перевірочні дані

Повернення макс реузльтату



      1. nb


        Назва методу

        Опис методу

        Вхідні параметри

        Вихідні параметри

        Main

        Реалізація наївного баєсовского класафікатора







        NaiveBayes

        Отримання результату роботи

        Тестувальні та перевірочні дані

        Повернення макс реузльтату

        Bugging

        Використання методу оптимізації bugging

        Тестувальні та перевірочні дані

        Повернення макс реузльтату

        boosting

        Використання методу оптимізації boosting

        Тестувальні та перевірочні дані

        Повернення макс реузльтату
      2. compare


Назва методу

Опис методу

Вхідні параметри

Вихідні параметри

Main

Порівняння роботи методів на однакових даних

Тестувальні та перевірочні дані

Повернення графіку і текстового файлу з відображенням результату



      1. mxnet


Назва методу

Опис методу

Вхідні параметри

Вихідні параметри

Main

Реалізація моделі mxnet

Тестувальні та перевірочні дані

Повернення макс реузльтату



      1. bug_vs_boost


Назва методу

Опис методу

Вхідні параметри

Вихідні параметри

Main

Порівняння методів на однакових даних

Тестувальні та перевірочні дані

Повернення графіку і текстового файлу з відображенням результату



      1. autoencoder


Назва методу

Опис методу

Вхідні параметри

Вихідні параметри

Main

Реалізація “створення” рукописного символу на основі тестових даних

Тестувальні та перевірочні дані

Зображення цифри

autoencode

Функція реалізації генерування сиімволу

Тестувальні та перевірочні дані

Зображення цифри




    1. Зовнішні програмні продукти що було використано

При створенні системи було використано готові реалізації деяких алгоритмів. Перелік програмних продуктів що було застосовано наведено нижче.
      1. NumPy


Numpy — розширення мови Python, що додає підтримку великих багатовимірних масивів і матриць, разом з великою бібліотекою високорівневих математичних функцій для операцій з цими масивами[20]. Попередник Numpy, Numeric, був спочатку створений Jim Hugunin. Numpy — відкрите програмне 67 забезпечення і має багато розробників. Оскільки Python — інтерпретована мова, математичні алгоритми, часто працюють в ньому набагато повільніше ніж у компільованих мовах, таких як C або навіть Java. NumPy намагається вирішити цю проблему для великої кількості обчислювальних алгоритмів забезпечуючи підтримку багатовимірних масивів і безліч функцій і операторів для роботи з ними. Таким чином будь-який алгоритм який може бути виражений в основному як послідовність операцій над масивами і матрицями працює також швидко як еквівалентний код написаний на C.

      1. Keras


Keras - бібліотека нейронних мереж із відкритим кодом, написана на Python. Він здатний працювати на вершині TensorFlow, Microsoft Cognitive Toolkit або Theano. Розроблений для швидкого експерименту з глибокими нейронними мережами, він зосереджений на тому, щоб бути зручним, модульним та розширюваним. Він був розроблений як частина дослідницької роботи проекту ONEIROS (відкрита нейро-електронна інтелектуальна робота операційної системи), а її основним автором і супроводжувачем є Франсуа Шолле, інженер Google.

У 2017 році команда Google TensorFlow вирішила підтримати Keras у базовій бібліотеці TensorFlow. Холле пояснила, що Keras задумано як інтерфейс, а не самостійний механізм навчання. Він пропонує вищий рівень інтуїтивно зрозумілий набір абстракцій, що полегшує розробку глибоких моделей навчання незалежно від використовуваного обчислювального бекенда.



      1. Tensorflow


TensorFlow - це бібліотека програмного забезпечення з відкритим кодом для численних обчислень з високою ефективністю.[7] Його гнучка архітектура дозволяє легко розгортати обчислення на різних платформах (процесори, графічні процесори, TPU), а також від настільних комп'ютерів до кластерів серверів для мобільних і крайніх пристроїв. Спочатку розроблена дослідниками та інженерами команди Google Brain в організації AI Google, вона має сильну підтримку для машинного навчання та глибокого навчання, а гнучкі числові обчислення використовуються в багатьох інших наукових областях.

      1. Theano


Theano - бібліотека чисельного обчислення в Python. Обчислення в Theano виражаються NumPy-ським синтаксисом і компілюються для ефективних паралельних обчислень як на звичайних CPU, так і на GPU.

      1. SciCit-learn


Scikit-learn – безкоштовна бібліотека машинного навчання для мови програмування Python. Вона має різні алгоритми класифікації, регресії та кластеризації, включаючи векторні машини, випадкові ліси, градієнтні підсилювачі, реалізацію засобу k-средніх та DBSCAN, і призначена для взаємодії з чисельними та науковими бібліотеками Python NumPy та SciPy. Scikit-learn був заснований Девідом Курнопом як проект Google Code of Summer в 2007 році. Scikit-learn здебільшого написаний на мові програмування Python, але деякі алгоритми написані на Cython для покращення продуктивності.

Висновки до розділу


У даному розділі було проведено огляд створеного програмного продукту та всіх його компонентів. Біло розглянуто усі його складові та описано їх призначення та функціонал. Також було проведено опис зовнішніх програмних продуктів які було використано для створення системи.

  1. СТАРТАП СКЛАДОВА


Таблиця 5.1 - Опис ідеї стартап-проекту

Зміст ідеї

Напрямки застосування

Вигоди для користувача

Бібліотека для випробовування та аналізу методів машиного навчання

Тестування

Можливість спробувати найбільш відомі методи

Порівняння

Можливість порівняти методи на практиці

Дослідження

Точне відслідкування впливу чиників на ефективність навчання

Таблиця 5.2 - Визначення сильних, слабких та нейтральних характеристик ідеї проекту



№ п/п

Техніко-економічні характе-ристики ідеї

(потенційні) товари/концепції конкуренті

W (слабка сторона)

N (нейтральна сторона)

S (сильна сторона)

Tensorflow

Theano

keras

1

Випробовування декількох методів машиного навчання

+

-

+




X




2

Аналіз та порівняння

-

-

-




X




3

Відображення результатів

+

-

+

Х







Таблиця 5.3- Попередня характеристика потенційного ринку стартап-проекту



№ п/п

Показники стану ринку (найменування)

Характеристика

1

Кількість головних гравців, од

1

2

Загальний обсяг продаж, грн/ум.од

1000

3

Динаміка ринку (якісна оцінка)

зростає

4

Наявність обмежень для входу (вказати характер обмежень)

Сильна конкуренція

5

Специфічні вимоги до стандартизації та сертифікації

немає

6

Середня норма рентабельності в галузі (або по ринку), %

150%

Таблиця 5.4 - Характеристика потенційних клієнтів стартап-проекту



№ п/п

Потреба, що формує ринок

Цільова аудиторія (цільові сегменти ринку)

Відмінності у поведінці різних потенційних цільових груп клієнтів

Вимоги споживачів до товару

1

Потреба у можливості порівнювати та вдосконалювати методи

Розробники,

Увага до зручності використання

До продукції:

- точна робота

- велика швидкодія

- ресурсо-ефективність



До компанії-постачальника:

- своєчасна технічна підтримка



Таблиця 5.5 - Фактори загроз



№ п/п

Фактор

Зміст загрози

Можлива реакція компанії

1

Обмеженість

Не бажання клієнтів випробовувати меньш пророботану бібліотеку

Зобов’язання компанії продовжиті працю над вдосконаленням продукту

2

Невідомість

Клієнти надаватимуть перевагу відомим розробникам

Вкладення грошей у рекламу та маркетинг

Таблиця 5.6 - Фактори можливостей



№ п/п

Фактор

Зміст можливості

Можлива реакція компанії

1

Популяризація

Машине навчання набуває розвитку

Випуск власного продукту

Таблиця 5.7 - Ступеневий аналіз конкуренції на ринку



Особливості конкурентного середовища

В чому проявляється дана характеристика

Вплив на діяльність підприємства (можливі дії компанії, щоб бути конкурентоспроможною)

1. Тип конкуренції

- чиста


Велика кількість конкурентів

Складно провести конкурентний аналіз та виокремити свої конкурентні переваги

2. За рівнем конкурентної боротьби

- міжнародний



Розміщення проектів-конкурентів

Необхідно забезпечити коректний переклад документації на найуживаніші мови

Необхідно мати можливість подорожувати, або підтримувати проект на клієнтській стороні віддалено.



3. За галузевою ознакою

- внутрішньогалузева



Чітка спрямованісь проекту(компьютерні технології)

Відомі інструменти розробки, просування, позиціонування

4. Конкуренція за видами товарів

- між бажаннями



Користувачі обирають між проектами той що більше їх задовільняє

Необхідно донести до користувача свої конкурентні переваги

5. За характером конкурентних переваг

- цінова


Ціна за продукт та його обслуговування надання послуги

Продукт має власнувати за рахунок грошей на спонсування

6. За інтенсивністю

- марочна



Унікальне ім’я

Можливість досягти впізнаваності проекту шляхом просування

Таблиця 5.8 - Обґрунтування факторів конкурентоспроможності



№ п/п

Фактор конкурентоспроможності

Обґрунтування

1

Випробовування декількох методів машинного навчання

Можливість отримати результат лише надавши дані

2

Аналіз та порівняння

Хоча, конкурентами надані результати роботи та аналіз, але не має можливості швидко порівняти на власному ПК

3

Відображення результатів

Задовільна швидкість роботи

Таблиця 5.9 - Порівняльний аналіз сильних та слабких сторін «MLCheck»



№ п/п

Фактор конкурентоспроможності

Бали 1-20

Рейтинг товарів-конкурентів у порівнянні з Tensorflow

-3

-2

-1

0

+1

+2

+3

1

Випробовування декількох методів машинного навчання

14













X







2

Аналіз та порівняння

15
















X




3

Відображення результатів

110










X










Таблиця 5.10 - SWOT- аналіз стартап-проекту



Сильні сторони:

Випробовування декількох методів машиного навчання

Аналіз та порівняння

Відображення результатів



Слабкі сторони:

Обмеженість у плані бази даниї



Можливості:

Популяризація




Загрози:

Невідомість

Обмеженість

Таблиця 5.11 - Визначення базової стратегії розвитку



№ п/п

Обрана альтернатива розвитку проекту

Стратегія охоплення ринку

Ключові конкурентоспроможні позиції відповідно до обраної альтернативи

Базова стратегія розвитку

1

Створення бенчмарку для декількох баз даних зображень

Стратегія диферен-ційованого маркетингу

Оріентованість на більшу кількість користувачів

Стратегія спеціалізації

Таблиця 5.12 - Вибір цільових груп потенційних споживачів



№ п/п

Опис профілю цільової групи потенційних клієнтів

Готовність споживачів сприйняти продукт

Орієнтовний попит в межах цільової групи

Інтенсивність конкуренції в сегменті

Простота входу у сегмент

1

Розробники

Так

Є

Велика

Дуже складно

Які цільові групи обрано: 1

Таблиця 5.13 - Визначення базової стратегії конкурентної поведінки



№ п/п

Чи є проект «першо-прохідцем» на ринку?

Чи буде компанія шукати нових споживачів, або забирати існуючих у конкурентів?

Чи буде компанія копіювати основні характеристики товару конкурента, і які?

Стратегія конкурентної поведінки

1

Ні

Забирати у конкурентів

Так, можливість використання на більшій кількості датасетів

Стратегія заняття конкурентної ніші

Таблиця 5.14 - Визначення стратегії позиціонування



№ п/п

Вимоги до товару цільової аудиторії

Базова стратегія розвитку

Ключові конкурентоспроможні позиції власного стартап-проекту

Вибір асоціацій, які мають сформувати комплексну позицію власного проекту

1

Цілодобова доступність

Стратегія спеціалізації

Випробовування декількох методів машиного навчання

зручність, точність

Надійний захист данних

Аналіз та порівняння

Відображення результатів

Точне визначення локального мінімума для методів дослідження

Зручні інструменти роботи

Швидкодія

Таблиця 5.15 - Визначення ключових переваг концепції потенційного товару



№ п/п

Потреба

Вигода, яку пропонує товар

Ключові переваги перед конкурентами

1

Потреба у можливості порівнювати та вдосконалювати методи

Можливість використовувати та аналізувати

Можливість у стиснений час отримати власні результати

Таблиця 5.16 - Формування системи збуту



№ п/п

Специфіка закупівельної поведінки цільових клієнтів

Функції збуту, які має виконувати постачальник товару

Глибина каналу збуту

Оптимальна система збуту

1

Розробники

Найбільш відомі методи у одній бібліотеці


1

Розробник - користувач


  1. ДОСЛІДЖЕННЯ ПРАЦЕЗДАТНОСТІ СИСТЕМИ

    1. Перевірка роботи наївного баєсовского класифікатора


По-перше, що нас цікавить в наївному баєсовскому класифікатору у випадку MNIST, це відображення середнього значення кожного класу (0,1,2,3,4,5,6,7,8,9)

Результати при використанні 5000 тестових та 5000 тренувальних:


Рис.4.1 Середнє зображення кожного з класів


Друге, відображення матриці пересічень:



Рис.4.2 Матриця пересічень

x-клас відображає реальний клас, та y-клас – клас, що передбачався.

Як помітно з рисунка вище, класифікатор має проблеми с 2 та 6, 4 та 9, 5 та 3 і 7 та 9.

Використаємо 1 вісь(Axis)

Рис.4.2 Матриця пересічень з 1 віссю

Точність покращилась, ми позбулися проблем з 2 та 6 і 7 та 9.

Добавимо ще одну:



Рис.4.3 Матриця пересічень з 2 віссю

Точність покращилась ще більш, тепер ми позбулися проблем з 4 та 9, але точність для 5 все ще 18.6%

    1. Перевірка роботи k-nearest


Рис.4.4 Графік для 2000 елементів з 500 тренувальними


Середня точність для тренeвального набору: 0, 936

Середня точність для тестового набору: 0, 817


Рис.4.4 Графік для 10000 елементів з 2000 тренувальними


Середня точність для тренeвального набору: 0, 9572

Середня точність для тестового набору: 0, 91

    1. Нейрона мережа за допомогою keras



Рис.4.5 Графік втрат для 15 ітерацій(epoch) з шагом в 32



Рис.4.6 Графік точності для 15 ітерацій(epoch) з шагом в 32



Рис.4.7 Графік втрат для 40 ітерацій(epoch) з шагом в 32

Рис.4.8 Графік точності для 40 ітерацій(epoch) з шагом в 32

Рис.4.9 Графік втрат для 40 ітерацій(epoch) з шагом в 10



Рис.4.10 Графік точності для 40 ітерацій(epoch) з шагом в 32



Рис.4.11 Графік втрат для 15 ітерацій(epoch) з шагом в 100


Рис.4.12 Графік точності для 15 ітерацій(epoch) з шагом в 100



Рис.4.13 Графік точності для 15 ітерацій(epoch) з шагом в 10

Рис.4.14 Графік точності для 15 ітерацій(epoch) з шагом в 10


    1. Результат порівняння реалізації нейроних мереж


Рис.5.1. Порівняння keras, theano, tensorflow




ВИСНОВКИ


Отже, машинне навчання на самому пику розвитку і все більш програмістів звертають свою увагу на дану область. І однією з найбільших проблем перед ними постає відсутність систематичності поза датасетів і відсутність можливості точно підібрати та визначити методи навчання, оптимізації, параметри навчання.

Для цього була розроблена дана бібліотека, що надає змогу, у короткий час ознайомитись з більшістю методів класифікації зображень, порівняти їх результативність та вислідити вплив окремих чинників на навчання.

Було використано бібліотеки tensorflow, theano та keras, порівняно їх результативність при схожих умовах навчання, проаналізовано вплив зменшення та збільшення ітерацій, шагу.

Також було випробувано метод k-ближайших сусідів та наївний баєсовський класифікатор. Отримано матриці пересічень та графіки, що демонструють наслідки як перенавчання так і занадто малого чи більшого шагу.



СПИСОК ЛІТЕРАТУРИ


  1. Discerning Structure from Freeform Handwritten Notes [Електронний ресурс] / Michael Shilman* , Zile Wei* , Sashi Raghupathy – Режим доступу до ресурсу: http://shilman.net/papers/shilman_discerning_icdar03.pdf

  2. Convolutional Neural Networks (CNNs / ConvNets) [Електронний ресурс] – Режим доступу до ресурсу: http://cs231n.github.io/convolutional-networks/

  3. MNIST Hand Written Digits Classification Benchmark [Електронний ресурс] / [C. Szegedy, W. Liu, Y. Jia та ін.] – Режим доступу до ресурсу: https://knowm.org/mnist-hand-written-digits-classification-benchmark/

  4. THE MNIST DATABASE [Електронний ресурс]– Режим доступу до ресурсу: http://yann.lecun.com/exdb/mnist/

  5. MLPerf – Will New Machine Learning Benchmark Help Propel AI Forward? [Електронний ресурс] / O. Ronneberger, P. Fischer, T. Brox – Режим доступу до ресурсу: https://www.hpcwire.com/2018/05/02/mlperf-will-new-machine-learning-benchmark-help-propel-ai-forward/

  6. Gradient-Based Learning applied to document recognition [Електронний ресурс] – Режим доступу до ресурсу: http://yann.lecun.com/exdb/publis/pdf/lecun-98.pdf

  7. Tensorflow probability [Електронний ресурс] – Режим доступу до ресурсу: https://www.tensorflow.org/probability/

  8. Методичні вказівки до виконання лабораторних робіт з дисципліни «Методи оптимізації» В.В.Бобін, В.В.Ладогубець, О.Д.Фіногенов. [Електронний ресурс] – Режим доступу до ресурсу: http://od-finogenov.edu.kpi.ua/lib/exe/fetch.php?media=publikacii:037_2011.pdf

  9. Методи багатокритеріальної та мінімаксної оптимізації В.В.Ладогубець, О.Д.Фіногенов. [Електронний ресурс] – Режим доступу до ресурсу: http://od-finogenov.edu.kpi.ua/lib/exe/fetch.php?media=publikacii:046_2012.pdf

  10. Boosting and Bagging: How To Develop A Robust Machine Learning Algorithm. [Електронний ресурс] – Режим доступу до ресурсу: https://hackernoon.com/how-to-develop-a-robust-algorithm-c38e08f32201

  11. Discerning Structure from Freeform Handwritten Notes / Michael Shilman , Zile Wei , Sashi Raghupathy, Patrice Simard, David Jones

  12. Hessian matrix in FORCE calculations [Електронний ресурс] – Режим доступу до ресурсу: http://openmopac.net/manual/Hessian_Matrix.html

  13. How to classify MNIST digits with different neural network architectures [Електронний ресурс] – Режим доступу до ресурсу: https://medium.com/tebs-lab/how-to-classify-mnist-digits-with-different-neural-network-architectures-39c75a0f03e3

  14. Remote Sensing Image Scene Classification: Benchmark and State of the Art [Електронний ресурс] – Режим доступу до ресурсу: https://arxiv.org/pdf/1703.00121.pdf

  15. Linear Classification [Електронний ресурс] – Режим доступу до ресурсу: http://compneurosci.com/wiki/images/c/c0/Linear_Classification.pdf

  16. How to Get 97% on MNIST with KNN Електронний ресурс] – Режим доступу до ресурсу: https://steven.codes/blog/ml/how-to-get-97-percent-on-MNIST-with-KNN/

  17. Artificial Neural Networks (ANN) KNN / Kenneth Soo, Stanford Електронний ресурс] – Режим доступу до ресурсу: https://www.kdnuggets.com/2016/12/artificial-neural-networks-intro-part-1.html

Каталог: bitstream -> 123456789
123456789 -> Тема: Безпека вулиці: азбука дороги
123456789 -> Методичні вказівки до вивчення дисципліни сво «доктор філософії»
123456789 -> Регіональний підхід до дослідження формування ціннісних орієнтацій студентів мистецьких вишів україни н. Г. Тарарак
123456789 -> Методологічне підґрунтя дослідження формування ціннісних орієнтацій студентів вищих навчальних закладів мистецького профілю україни
123456789 -> Загальна характеристика роботи
123456789 -> Інформаційне суспільство в контексті політичної культури суспільства
123456789 -> Заліщицька районна державна адміністрація Відділ з питань освіти Районний методичний кабінет Використання активних та інноваційних технологій як засіб активізації
123456789 -> Україна тернопільська область опис досвіду роботи учителя біології


Поділіться з Вашими друзьями:
1   ...   7   8   9   10   11   12   13   14   15


База даних захищена авторським правом ©pedagogi.org 2019
звернутися до адміністрації

    Головна сторінка