Наивното добавяне на слоеве от Boolean води до спиране или непрекратяване.

Въведение

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

Цел

Наивно създайте скрит слой към логическата мрежа и извлечете прозрения от нейното представяне.

Експериментиране

Кодът може да бъде намерен на: https://github.com/arjay55/Logic_learn_12202019

Този път се добавя плътен скрит слой. Всеки възеле обект, състоящ се от ff:

  1. логическа формула
  2. Таблица на истината, оценена като 1
  3. Таблица на истината, оценена като 0
  4. Истинната таблица на не се интересува

Както можете да видите от фигурата по-горе, мрежата по същество е като типична плътна невронна мрежа, но описанието на възела е по същество логическа формула в SOP или Сума от продукти форма.

Грешките, където възел(j,k ) XOR възел(j+1,k) == 1, зададената правилна стойност се получава от входовете. Ако входовете са от набора от node(j,k),формулата се преизчислява с новата таблица на истината. В противен случай следващата стойност от набора от данни без значение се използва като правилни стойности от node(j,k )като по този начин се обучават засегнатите възли с помощта на връзки в node(j- 1,k). Това е аналогично на „обратно разпространение“в многослойни перцептрони. Както е дефинирано от предишната публикация, актуализираната таблица на истината е част от атрибутите на възела за по-нататъшни актуализации, идващи отнабора без значение.

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

Алгоритъмът за обучение е аналог на „разработка, управлявана от тест“ в софтуерното инженерство. Ако изводът допусне грешка, тогава се получава образец за обучение за обучение. Процесът се повтаря, докато се постигне 100% точност. Целта е да се постигнат 100%, когато данните, използвани за обучение, сапо-малко от 100%.

Експерименти на 1 слой:

  1. Както се очаква, обучението е успешно, постигайки 100% логическа еквивалентност. Това обаче доведе до природата на незабавната неподатливост (NP-hard) на обобщението на булевата логика. Можете да стартирате по-ранната версия на кода (), за да прегледате обучението на набора от данни

Тъй като наивно се добавя гъста мрежа, може да възникнат някои проблеми:

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

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

b. Неуспехът да се научите е аналогичен само на оптимизиране до локален оптимум.

Изводи:

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

Допълнителна работа:

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