лою
(16)
І записуються у файл в такому ж вигляді
lat, lon, lat0, lon0, T0, lat1, lon1, T1, ..., lat24, lon24, T24 T,
Після чого дані можна подавати на навчання.
Щоб отриманий вихід мережі відповідав реальному використовується формула [8]
б) Нормалізація з використанням мінімаксної функції.
Окремо для координат і температури вважаються максимальні і мінімальні значення у вибірці. На основі цього дані нормалізуються за формулою:
(17)
де: - значення, підмет нормалізації;
[xmax, xmin] - інтервал значень x;
[d1, d2] - інтервал, до якого буде приведено значення x.
Мною використовувався стандартний інтервал [0, 1]. [8]
. 3.4 Навчальна та тестова вибірка
Навчальна вибірка являє собою сукупність прикладів такого вигляду:
latNorm, lonNorm, latNorm0, lonNorm0, TNorm0, latNorm1, lonNorm1, TNorm1, ..., latNorm24, lonNorm24, TNorm24 TNorm,
де latNorm, lonNorm - нормалізовані одним з двох представлених вище алгоритмів координати точки, на якій буде навчатися мережу., lonNormi, i=0, ..., 24 - нормалізовані координати точок, щодо яких відбувається аппроксімація.i, i=0,..., 24 - нормалізована температура в конкретний розглянутий момент часу в точках з координатами lati, loni.
Такому наприклад відповідає значення TNorm - нормалізована температура в точці з координатами lat, lon в цей же момент часу.
Тестова вибірка представляється в такому ж самому вигляді.
Було використано два види тестових вибірок:
Вибірка заснована на історії спостережень
Вибірка представляє температурний розподіл в даний момент часу.
. 4 Нейронна мережа
В якості нейронної мережі для вирішення задач апроксимації використовувався багатошаровий персептрон. Експерименти з навчання та тестування проводилися як для одного, так і для двох прихованих шарів. В якості алгоритму навчання застосовувався алгоритм зворотного поширення помилки. Як функції активації була обрана логістична функція - нелінійна функція, що задається наступним виразом:
(18)
де?- Параметр нахилу сигмоидальной функції [3].
Величина помилки підраховувалася наступним чином:
(19)
де outi це реальний вихід нейрона, а desiredouti це бажаний вихід нейрона.
2.4.1 Підбір конфігурації мережі
Спочатку підбір конфігурації мережі проводився емпіричним шляхом, тобто вибиралася конфігурація, проводилося навчання, а на основі отриманих результатів вибиралася та, яка давала найкращі результати.
Потім було вирішено провести більш точну добірку конфігурації. Спочатку були проведені дослідження з одним прихованим шаром. Був написаний метод, який у циклі приблизно від 20 нейронів у прихованому шарі до 120 для кожного кроку створював мережу із зазначеним числом нейронів. Потім мережу навчалася і тестувалася, результати записувалися в файл. Етап навчання і тестування повторювався тричі для кожної конфігурації мережі. На основі отриманих даних вибиралася мережу з найкращими результатами.
Далі було вироблено подібне дослідження для двох прихованих шарів.
У підсумку я зупинився на конфігурації з двома прихованими шарами - 20 нейронів у першому шарі, 10 у другому.
Малюнок 2.3 - Структура нейронної мережі
У першому шарі нейронної мережі міститься 77 нейронів:
міст, для кожного по три значення (широта, довгота, температура) разом 75, плюс 2 значення (широта, довгота) для апроксимуємої точки.
Потім прихований шар з 20 нейронами, прихований шар з 10 нейронами і 1 вихідний нейрон видає температуру в апроксимуємої точці.
. 4.2 Оптимізація і донавчання нейронної мережі
При перших спробах навчити мережу на наявному безлічі прикладів виникла проблема, що кожен навчальний прохід займає надто багато часу (близько хвилини). Постало питання про необхідність прискорення роботи мережі. Шляхом аналізу і вимірів часу виконання використовуються методів був обчислений метод виконується набагато довше інших. Потім він був переписаний, що призвело до того, що швидкість навчання зросла приблизно в 20 разів (близько 3-х секунд).
До наявної функціональності нейронної мережі була додана можливість донавчання. Мережа навчається, потім ваги і всі необхідні параметри зберігаються у файл, а при повторному запуску є можливість вибору між продовженням навчання і навчанням з нуля. При донавчання ваги і параметри беруться з вказаного файлу...