на рис. 3.11.
Рис. 3.11. Користувальницький інтерфейс табличній моделі ІНС Кохонена (вхідні осередку виділені заливкою).
Рис. 3.12. Початкові ваги
(а) і структура шару нейронів (б) табличній моделі ІНС Кохонена
Інтерфейс користувача табличній моделі включає:
керуючі кнопки Пуск, Скидання і Виконати, з якими асоційовані макроси StartBtn_Click (), і InitBtn_Click () і Run_Iterations () відповідно;
вхідні осередку Число епох R8C6, Швидкість навчання R15C5 і R15C6, Частка епох взаємодії R17C5, Число нейронів R4C9, Ширина карти R5C9, Число прогонів R12C9;
осередок Прапор включення ітерацій R4C6, встановлюється і скидається програмно c допомогою керуючих макросів StartBtn_Click () і InitBtn_Click ();
таблицю завдання детермінованою початковій конфігурації КА (початкового положення нейронів) в діапазоні осередків R23C20: R52C23 (рис. 3.12а);
Рис. 3.13. Вхідний порт даних табличній моделі ІНС Кохонена
Рис. 3.14. Нейрон-переможець і сусідні нейрони з оточення фон Неймана
Рис. 3.15. Збільшення координат нейронів для активної вибірки 2 після двох епох навчання
прапорець Фіксувати і пов'язану з ним осередок R7C9, призначений для фіксації стану нейронів шару Кохонена після завершення навчання ІНС;
інші допоміжні осередки, що забезпечують управління ІНС та візуалізацію процесу її навчання.
В осередках табличній моделі використовуються формули:
Інтерфейс користувача:
[R5C6]:=eNum * smplNums? число ітерацій
[R6C6]:=ЕСЛИ (start=1; cnt + 1; 0)? лічильник ітерацій
[R9C6]:=ЕСЛИ (start=1; ЦІЛЕ (cnt/smplNums); 0)? лічильник епох
[R9C5]:=eCnt? попереднє значення лічильника епох
[R10C6]:=ЕСЛИ (start=1; ЯКЩО (ОСТАТ (cnt; smplNums)=0; smplNums; ОСТАТ (cnt; smplNums)); 0)? лічильник ітерацій епохи
[R12C6]:=Вибірки! R2C7? число навчальних образів
[R13C6]:=ЕСЛИ (start=1; ОСТАТ (cnt; smplNums) +1; 0)? номер поточного способу
[R16C6]:=ЕСЛИ (eCnt lt; R17C6; R15C5; R15C6)? поточна швидкість навчання
[R17C6]:=ЦІЛЕ (Ni * R17C5)? число епох взаємодії
Вхідний порт даних:
[R57C21]:=curSmpl
[R60C20: R60C23]:=зміщені (Вибірки! R14C3; k; R59C)
Вхідний порт даних працює таким чином. У кожній ітерації процесу навчання ІНС в осередок R57C21 з іменованої комірки curSmpl копіюється номер поточного навчального способу k. За цим номером за допомогою функції Excel зміщені () в осередки R60C20: R60C23 вхідного порту даних з робочого аркуша Вибірки (діапазон комірок Вибірки! R14C4: R8014C7) зчитуються координати k-го навчального способу активної вибірки. Отримані через цей порт координати поточного навчального способу надходять на входи R64C20: R64C23 шару нейронів Кохонена (ріс.3.35б), в кінцевому рахунку, визначаючи номер чергового нейрона-переможця.
Входи прошарку нейронів Кохонена:
[R64C20: R64C23]:=R [- 4] C
Шар нейронів Кохонена:
[R65C20: R94C23]:=ЕСЛИ (fix; RC; ЯКЩО (start=1; ЕСЛИ (И (ieCnt lt;=smplNums; ОСТАТ (cnt; smplNums)=0); RC + ЯКЩО ( R [51] C24=0; 0; R [51] C/R [51] C24); RC); R [- 42] C))
[R65C24: R94C24]:=ЕСЛИ (start=1; КОРІНЬ (СУММКВРАЗН (R64C [- 4]: R64C [- 1]; RC [- 4]: RC [- 1])) ; 0)
[R95C24]:=МІН (R [- 30] C: R [- 1] C)
[R97C22]:=ПОІСКПОЗ (R95C24; R65C24: R94C24; 0) - 1
[R97C23]:=ОСТАТ (winner; L)
[R97C24]:=ЦІЛЕ (winner/L)
Оточення нейрона-переможця:
[R102C29: R106C34]:=RC28 * L + R101C + 0 * cnt
[R108C29: R112C34]:=ЕСЛИ (RC28 * L + R101C=winner; 1; ЕСЛИ (ИЛИ (І (ABS (RC28-j)=1; ABS (R101C-i)=0 ); І (ABS (RC28-j)=0; ABS (R101C-i)=1)); ЯКЩО (eCnt lt; R17C6; 1; 0); 0))
Прирости координат нейронів:
[R149C19: R178C19]:=ЕСЛИ (ІНДЕКС (ЯКЩО (slct gt; 2; Set1; Set); winner + 1; RC18 + 1)=1; ІНДЕКС (R108C29: R112C34; ЦІЛЕ (RC18/L) +1; ОСТАТ (RC18; L) +1); 0)
[R149C20: R178C23]:=ЕСЛИ (ОСТАТ (cnt; smplNums) lt; gt; 0; RC + teta * (R64C-R [- 84] C) * RC19; 0)
[R149C24: R178C24]:=ЕСЛИ (start=...