Невронни мрежи: пример, определение, значение, обхват

Изкуственият интелект и невронните мрежи са изключително вълнуващи и мощни техники, базирани на машинно обучение, които се използват за решаване на много проблеми в реалния свят. Най-простият пример за невронна мрежа е изучаването на пунктуацията и граматиката за автоматично на създаване на изцяло нов текст с всички правила за правопис.

История на невронната мрежа

Компютърните учени отдавна се опитват да симулират човешкия мозък. През 1943 г. Уорън S. Маккълок и Уолтър Питс разработват първия концептуален модел на изкуствена невронна мрежа. В "Логическо изчисление на идеи, свързани с невронната дейност" те описват пример за невронна мрежа, концепцията за неврон - единична клетка, живееща в обща мрежа, която получава входни данни, обработва ги и генерира изходни сигнали.

История на невронната мрежа

Тяхната работа, както и тази на много други учени, не е имала за цел да опише точно работата на биологичния мозък. Изкуствената невронна мрежа е разработена като изчислителен модел, който работи чрез Начин на функциониране на мозъка за решаване на широк спектър от проблеми.

Очевидно има задачи, които са лесни за решаване от компютър, но трудни за човек, като например извличането на корен квадратен от десетцифрено число. Невронната мрежа ще изчисли този пример за по-малко от милисекунда, докато на човек ще му трябват минути. От друга страна, има задачи, които са изключително лесни за решаване от хората, но не са по силите на компютъра, като например избор на фон на изображение.

Учените, открили ИИ

Учените са прекарали много време в проучване и прилагане на сложни решения. Най-често срещаните пример за невронна мрежа в компютърните науки е разпознаването на образи. Обхватът на приложенията варира от оптично разпознаване на символи и снимки, печатни или ръкописни сканирания в цифров текст преди разпознаване на лица.

Биологични изчислителни машини

Биологични изчислителни машини

Човешкият мозък е изключително сложна и най-мощната известна изчислителна машина. Вътрешните му механизми са моделирани около концепцията за неврони и техните мрежи, известни като биологични невронни мрежи. Мозъкът съдържа около 100 милиарда неврона, които са свързани с тези мрежи.

На високо ниво те комуникират помежду си чрез интерфейс, съставен от крайни аксони, свързани с дендрити през пролука - синапс. Казано по-просто, един човек предава съобщение на друг чрез този интерфейс, ако сумата от претеглените входни сигнали от на един или на няколко неврона надвишава прага, за да предизвика предаване. Това се нарича активиране, когато прагът е превишен и съобщението се предава на следващия неврон.

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

Елементи на невронния модел

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

Мрежите за дълбоко обучение се различават от обикновените невронни мрежи с един скрит слой. Пример за обучителни невронни мрежи е мрежата на Кохонен.

Елементи на невронния модел

В мрежите за дълбоко обучение всеки слой изучава даден набор от функции въз основа на изхода на предишния слой. Колкото по-навътре в невронната мрежа, толкова по-сложни са обектите, които могат да бъдат разпознати от възлите, тъй като те комбинират и рекомбинират обекти от предишното ниво.

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

Черна кутия ANN

Изкуствените невронни мрежи (ANN) са статистически модели, частично моделирани по биологични невронни мрежи. Те могат да обработват паралелно нелинейни връзки между входовете и изходите. Такива модели се характеризират с наличието на адаптивни тегла по пътищата между невроните, които могат да бъдат настройвани от алгоритъма за обучение, за да се подобри целият модел.

Архитектурно изкуствени неврони (ANN)

Прост пример за невронна мрежа е архитектурно изкуствена невронна мрежа ANN, в която:

  • Входно ниво - входно ниво.
  • Скрит слой - скритият слой.
  • Изходният слой е изходният слой.

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

В един прост модел първият слой е входният слой, следван от скрития слой и накрая от изходния слой. Всеки от тях може да съдържа един или повече неврони. Моделите могат да стават все по-сложни, тъй като капацитетът на абстракция се увеличава и решения на проблеми, Броят на скритите слоеве, броят на невроните в даден слой и броят на пътищата между тях.

Архитектурата и настройката на модела са основните компоненти на методите на ANN в допълнение към самите алгоритми за обучение. Те са изключително мощни и се считат за алгоритми от типа "черна кутия", което означава, че вътрешната им работа е много трудна за разбиране и обяснение.

Алгоритми за дълбоко обучение

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

Извличането на характеристики без наблюдение също е област, в която дълбокото обучение е отлично. Пример за обучение на невронни мрежи - мрежи SKIL.

Алгоритми за дълбоко обучение

Традиционно отговорността за извършване на процеса на извличане на признаци в повечето други подходи за машинно обучение, заедно с избора и дизайна на признаци, е на специалиста по данни или програмиста.

Оптимални параметри на алгоритъма

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

В моделите, базирани на невронни мрежи, има повече слоеве, отколкото в алгоритмите за повърхностно обучение. По-малките алгоритми са по-малко сложни и изискват по-задълбочени познания за оптималните функции, които включват подбор и проектиране. За разлика от тях алгоритмите за дълбоко учене разчитат повече на оптимален избор на модел и оптимизация чрез настройване. Те са по-подходящи за задачи, при които предварителното познаване на характеристиките е по-малко желателно или необходимо, а фиксираните данни не са налични или не са необходими за използване.

Входните данни се преобразуват във всички слоеве от изкуствени неврони или процесорни единици. Пример за код на невронна мрежа е CAP.

Стойност на CAP

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

Значението на CAP

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

  1. Директни невронни мрежи.
  2. Рекурентна невронна мрежа.
  3. Многослойни перспектрони (MLP).
  4. Конвергирани невронни мрежи.
  5. Рекурсивни невронни мрежи.
  6. Дълбоки мрежи от убеждения.
  7. Конвергентни дълбоки мрежи от убеждения.
  8. Самоорганизиращи се карти.
  9. Дълбоки машини на Болцман.
  10. Подредени автоматични кодери за потискане на шума.

Най-добрите съвременни архитектури

Перцептроните се считат за първо поколение невронни мрежи, изчислителни модели на един неврон. Те са изобретени през 1956 г. от Франк Розенблат в "Перцептрон: предполагаем модел за съхраняване и организиране на информация в мозъка". Перцептронът, наричан още мрежа с директна връзка, прехвърля информация от предната към задната си част.

Рекурентни невронни мрежи RNN превръщат входна последователност в изходна последователност, която е в друга област, например превръщат последователност от звукови налягания в последователност от идентификатори на думи.

Джон Хопфийлд представя мрежата на Хопфийлд в статията си от 1982 г. "Невронни мрежи и физически системи с възникващи колективни изчислителни възможности". В мрежата на Хопфийлд (HN) всеки неврон е свързан с всеки друг. Те се обучават, като се задава стойността им на желаната верига, след което могат да се изчислят теглата.

Машини на Болцман

Машината на Болцман е вид стохастична рекурентна невронна мрежа, която може да се разглежда като аналог на мрежите на Хопфийлд. Това е една от първите възможности за изучаване на вътрешни представяния, които решават сложни комбинаторни задачи. Входните неврони се превръщат в изходни в края на пълното обновяване.

Генеративната мрежа на Иън Гудфелоу (GAN) се състои от две мрежи. Често това е комбинация от Feed Forwards и конволюционни невронни мрежи. Единият генерира генеративно съдържание, а другият трябва да оценява дискриминативното съдържание.

Стартиране на SKIL от Python

Дълбоко изучаване на невронна мрежа с използване на Python като пример - карти на входовете към изходите и намиране на корелации. Известен е като универсален апроксиматор, тъй като може да се научи да апроксимира неизвестната функция f(x) = y между всеки вход "x" и всеки изход "y", като се предполага, че те са корелирани или причинно-следствено свързани.

Намира се правилното "f" или начинът за превръщане на "x" в "y", независимо дали f(x) = 3x + 12 или f(x) = 9x - 0.1.

Задачите за класификация са свързани с набори от данни, така че невронните мрежи извършват корелация между етикетите и данните. Известни са следните видове контролирано обучение:

  • разпознаване на лица;
  • разпознаване на хора в изображения;
  • Разпознаване на изражения на лицето: ядосан, щастлив;
  • разпознаване на обекти в изображения: знаци за спиране, пешеходци, маркери на пътната лента;
  • разпознаване на видео жестове;
  • разпознаване на гласа на високоговорителя;
  • класифициране на текст-спам.

пример за конволюционна невронна мрежа

Конволюционната невронна мрежа е подобна на многослойна перцепторна мрежа. Основната разлика е, че CNN проучва как е структурирана и за какви цели се използва. CNN е вдъхновена от биологичните процеси. Структурата им има вид на зрителна кора, налична при животните. Те се използват в областта на компютърното зрение и успяват да постигнат най-съвременните нива на изпълнение в различни области на научните изследвания.

Преди кодирането на CNN се използва библиотека, като Keras с бекенд Tensorflow, за да се изгради моделът. Първоначално се извършва необходимото импортиране. Библиотеката помага за изграждане на конволюционна невронна мрежа. Зареждане на масив от данни mnist чрез keras. Импортиране на последователен модел на Keras, към който можем да добавим конволюционни и обединени слоеве, плътни слоеве, тъй като се използват за предсказване на етикети. Слоят за сваляне намалява прекомерното приспособяване, а слоят за подравняване преобразува триизмерен вектор в едноизмерен вектор. Накрая импортираме numpy за операции с матрици:

  • Y = 2 # стойността 2 означава, че изображението има номер 2;
  • Y = [0,0,1,0,0,0,0,0,0,0] # 3-та позиция във вектора, направена 1;
  • # Тук стойността на класа се преобразува в двоична матрица на класа.

Алгоритъм на конструиране:

  1. Добавя свръхпрецизни слоеве и максимално обединяване към последователния модел.
  2. Добавяне на падащи слоеве между тях. Изпускането на случаен принцип изключва някои неврони в мрежата, което принуждава данните да намерят нови пътища и намалява прекомерното приспособяване.
  3. Добавяне на плътни слоеве, които се използват за прогнозиране на класа (0-9).
  4. Съставяне на модела с категорична функция за загуба на кръстосана ентропия, оптимизатор на Adadelta и метрика за точност.
  5. След обучението оценете загубата и точността на модела от тестовите данни и отпечатайте.
Изграждане на алгоритъм

Моделиране в Matlab

Нека представим прост пример за невронни мрежи на Matlab.

Ако приемем, че "а" Моделът има три входни данни "a", "b" и "c" и генерира изход "y".

Моделиране в Matlab

За целите на генерирането на данни: y = 5a + bc + 7c.

Първо, напишете малък скрипт за генериране на данните:

  • a = Rand (11000);
  • b = Rand (1,1000);
  • c = Rand (1,1000);
  • n = Rand (1,1000) * 0,05;
  • y = a * 5 + b * c + 7 * c + n,

където n е шум, специално добавен, за да прилича на реални данни. Стойността на шума е 0,1 и е равномерна.

Така входът е набор от "a", "b" и "c", и изход:

  • I = [a; b; c];
  • O = y.

След това използвайте вградената в Matlab функция newff, за да генерирате модела.

Примери за проблеми с невронни мрежи

Първо създайте матрица R с размер 3 * 2. Първата колона показва минимума на трите входа, а втората колона - максимума на трите входа. В този случай трите входа са в диапазона от 0 до 1, така че:

R = [0 1; 0 1; 0 1].

Сега създайте матрица на размерите, която съдържа v-размерите на всички слоеве: S = [51].

Сега извикайте функцията newff, както следва:

net = newff ([0 1; 0 1; 0 1], S, {`tansig`, `purelin`}).

Невронният модел {`tansig`, `purelin`} показва функцията за съпоставяне на двата слоя.

Обучете го с данните, които бяха създадени по-рано: net = train(net,I,O).

Мрежата е обучена, можете да видите кривата на производителността по време на обучението.

Крива на производителността

Сега го симулирайте отново със същите данни и сравнете резултатите:

O1 = sim(net,I);

plot(1:1000,O,1:1000,O1).

Така входната матрица ще бъде:

  • нето.IW{1}
  • -0.3684 0.0308 -0.5402
  • 0.4640 0.2340 0.5875
  • 1.9569 -1.6887 1.5403
  • 1.1138 1.0841 0.2439
  • нето.LW{2,1}
  • -11.1990 9.4589 -1.0006 -0.9138

Приложения на изкуствения интелект

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

Приложения:

  1. Автоматичен машинен превод. Това не е нещо ново, дълбокото обучение помага за подобряване на автоматичния превод на текст с помощта на подредени мрежи и позволява превод на изображения.
  2. Прост пример за прилагане на невронни мрежи - добавяне на цвят към черно-бели изображения и видеоклипове. Може да бъде направена автоматично с модели за дълбоко обучение.
  3. Машините научават пунктуацията, граматиката и стила на фрагмента от текста и могат да го използват модел за автоматично създаване на изцяло нов текст с правилен правопис, граматика и стил на текста.

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

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

Статии по темата