і ініціалізація мережі відбувається з використанням цих значень.
. 4.3 Навчання і тестування нейронної мережі
При використанні нормалізації вхідних даних за допомогою математичного очікування й дисперсії спроби навчити мережу не увінчалися успіхом.
Коли ж використовувалася нормалізація за допомогою мінімаксної функції мережу досить непогано навчалася і давала непогані результати при тестуванні.
Навчання мережі проходило не ідеально - мережі не вдавалося навчитися на всіх без винятку прикладах:
При завданні максимально допустимої помилки величиною в 0.01 (що складає близько 0.7 градуси за Цельсієм) мережі вдається навчитися давати правильний результат для 263 тисяч прикладів з 264 тисяч. Для помилки величиною в 0.001 - близько 230 000 з 264. Тобто процес навчання закінчувався не по розпізнаванню всіх прикладів, а по досягненні максимального числа ітерацій. Якщо зробити число ітерацій дуже великим, то мережа поступово покращує свідчення в тому сенсі, що розпізнає все більше число прикладів, але при тестуванні?? в кращу сторону це не позначається, скоріше навіть позначається в гіршу.
Тестування проходило на двох наборах даних:
а) Вибірка заснована на історії спостережень
б) Вибірка представляє температурний розподіл в даний момент часу.
Перша набагато більше другий. На вибірці заснованої на історії спостережень мережу показувала результати краще, ніж на даних за поточний момент. Для першої кращим показником є ??близько 1.4 градуса розбіжності з реальністю. Для другої близько 1.7.
. 5 Апроксимація
апроксимація нейронний мережу
2.5.1 Результат роботи нейронної мережі
Після навчання мережі відбувається формування сітки апроксимації розглянутого квадрата. На вхід мережі подаються координати з деяким кроком, повністю покривають квадрат. Мережа видає результат - передбачувану температуру в цій точці. Потім за отриманими даними формується матриця. Дані з цій матриці згодом повинні відображатися у веб поданні.
Малюнок 2.4 - Температурне розподіл на даній ділянці карти отримане нейронною мережею
На представленому вище графіку відображено температурний розподіл на ділянці на карті з координатами 45 - 49 градусів широти, 0 - 4 градуса східної довготи. По осі Z відкладається температура в шкалою Цельсія.
. 5.2 Порівняння з математичним методом
Для порівняння результатів роботи нейронної мережі з деяким стандартним математичним методом апроксимації використовувалася система комп'ютерної алгебри Wolfram Mathematica. На тому ж наборі даних, який використовувався при апроксимації нейронною мережею, була проведена апроксимація методом ермітовим інтерполяції. Потім було зроблено тестування.
Рисунок 2.5 - Температурне розподіл отримане ермітовим інтерполяцією
Апроксимація вийшла відмінною від очікуваної, середня помилка склала близько 17-ти градусів розбіжності з реальністю. Я пов'язую це із занадто малим набором відомих даних - всього 25 відомих точок. Оскільки стандартні методи не можуть навчатися їм доводиться робити свої судження тільки за наявними відомостями, які, як в даному випадку, можуть бути не достатніми для прийнятною апроксимації.
3 РЕАЛІЗАЦІЯ ПРОГРАМНОЇ СИСТЕМИ
У процесі реалізації програмної системи були застосовані наступні технології та програмне забезпечення:
мова програмування Java
текстовий формат обміну даними JSON
середу розробки Eclipse
OpenWeatherMap API
фреймворк JSON-Simple для роботи з JSON в Java
JavaScript бібліотека Leaflet для роботи з картами
фреймворк JavaServer Faces для розробки веб-додатків на Java
система комп'ютерної алгебри Wolfram Mathematica
. 1 Основні можливості OpenWeatherMap API
Як вже було сказано раніше, сервіс OpenWeatherMap надає безкоштовний API до всіх даних про погоду, до їх історії, прогнозами і всьому різноманіттю погодних карт. API володіє наступними можливостями:
Можна дізнатися поточні погодні відомості в деякому місті. Це робиться за допомогою http запиту наступним чином [9]:
а) За назвою міста: .openweathermap/data/2.5/weather? q=London, uk
б) За географічними координатами: .openweathermap/data/2.5/weather? lat=35 amp;...