По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Несмотря на то, что системы на базе Linux считаются самыми неуязвимыми, всё же существуют риски, к которым нужно относиться серьезно. Руткиты, вирусы, программы-вымогатели и многие другие вредоносные программы часто могут атаковать и вызывать проблемы на серверах Linux. Независимо от установленной операционной системы, для серверов необходимо принимать повышенные меры безопасности. Крупные корпорации и организации взялись за повышение уровня безопасности и разработали инструменты, которые не только обнаруживают недостатки и вредоносные программы, но и исправляют их и принимают меры для предотвращения разного вида неприятностей. Но такие ПО стоят дорого и не все могут позволить себе их покупать. К счастью, есть инструменты, по приемлемой цене или вовсе бесплатные, которые могут помочь с поиском и устранением уязвимостей. Они могут обнаруживать слабые места в различных разделах сервера на базе Linux. Lynis Lynis это известный инструмент безопасности, который пользуется популярностью среди Linux специалистов. Он также работает на системах на базе Unix и macOS. Это программное обеспечение с открытым исходным кодом, которое с 2007 года распространяется под лицензией GPL. Lynis не требует установки. Можно извлечь его из загруженного пакета или tar архива и запустить. Чтобы получить доступ к полной документации и исходному коду, можно скачать его с Git, Lynis был создан автором Rkhunter Майклом Боеленом. Она имеет две версии: для домашнего пользования и для предприятий. Обе версии показывают отличные результаты. Chkrootkit Как вы уже наверно предположили, chkrootkit утилита для сканирования системы на наличие руткитов. Руткиты это вид вредоносного ПО, который дает неавторизованному пользователю право на вход в систему. Если в парке есть сервера на базе Linux, то руткиты могут стать настоящей проблемой. Chkrootkit одна из самых популярных программ на базе Unix, которая помогает обнаруживать руткиты в системе. Для обнаружения проблем она использует команды "strings" (команда Linux для просмотра содержимого бинарного файла) и "grep". Она может быть запущена как с альтернативной директории, так и внещнего накопителя в случае работы с уже скомпрометированной системой. Различные компоненты chkrootkit занимаются поиском удалённые записи в "wtmp" и "lastlog" файлах, находят записи сниффера или конфигурационных файлов руткитов, а также проверяют на наличие скрытых записей в "/proc" или вызовов программы "readdir". Чтобы использовать эту утилиту нужно скачать последнюю версию, распаковать, скомпилировать и запустить. Rkhunter Майкл Болин разработчик, который создал в 2003 году Rkhunter. Эта очень полезная программа для POSIX систем помогает обнаруживать руткиты и другие уязвимости в системах Linux. Rkhunter тщательно просматривает файлы (скрытые или видимые), каталоги по умолчанию, модули ядра и неправильно настроенные разрешения в поисках слабых мест. После обычной проверки, он сопоставляет результаты с безопасными и правильными записями баз данных и ищет подозрительное ПО. Так как программа полностью написана на Bash, его можно использовать не только на Linux, но и на всех версиях Unix. ClamAV Написанный на C++ ClamAV антивирус с открытым исходным кодом, который помогает выявлять вирусы, трояны и другие виды вредоносных программ. Он полностью бесплатен, ввиду чего очень много пользователей используют его для сканирования персональных данных включая электронную почту на наличие вредоносных файлов любого типа. Он так же может быть использован для сканирования серверов. Изначально он был создан только для Unix. Несмотря на это, есть сторонние версии, которые можно использовать на Linux, BSD, AIX, MacOS, OpenVMS, Solaris. ClamAV регулярно выполняет автоматическое обновление баз данных для выявления самых последних угроз. Есть возможность сканирования в режиме командной строки, а также включает в себя расширяемый многопоточный демон, благодаря чему, существенно увеличивается скорость сканирования. Он проверяет различные типы файлов на наличие уязвимостей. Антивирус поддерживает все типы сжатых файлов включая RAR, Zip, Gzip, Tar, Cabinet, OLE2, CHM, SIS format, BinHex и почти все типы почтовых систем. LMD Linux Malware Detect LMD другой очень популярный продукт для Linux систем, специально разработанный для часто встречающихся угроз. Как и другие подобные продукты для поиска вредоносных программ и руткитов, LMD использует базу сигнатур для выявления и прекращения работы любого вредоносного кода. LMD не ограничивается собственными базами сигнатур. Для лучшего поиска он может использовать базы ClamAV и Team Cymru. Для заполнения своих баз, LMD собирает данные об уязвимостях на пограничных системах обнаружения угроз. Тем самым он генерирует новые сигнатуры для вредоносных ПО, которые активно эксплуатируются в атаках. Radare2 Radare2 (R2) фреймворк для анализа и реверс-инжиниринга двоичных файлов с превосходными возможностями обнаружения. Он может выявить заражённые файлы, даёт пользователю инструменты для управления ими, нейтрализует потенциальные угрозы. Фереймворк использует NoSQL базу sdb. Исследователи безопасности и разработчики ПО предпочитают эту программу за возможность отличного визуального представления данных. Одной из отличительных особенностей Radare2 является то, что пользователь не должен использовать командную строку для выполнения таких задач, как статический/динамический анализ и использование программного обеспечения. Рекомендуется для любого типа исследований по бинарным данным. OpenVAS Open Vulnarability Assessment System или OpenVAS эта размещённая система для сканирования уязвимостей и управления ими. Она предназначена для предприятий любого размера и помогает выявлять невидимые проблемы безопасности в инфраструктуре. Изначально этот продукт был известен под названием GNessUs, до тех пор, пока новый владелец, Greenbone Networks, не сменил название на OpenVAS. Начиная с версии 4.0, OpenVAS предоставляет непрерывное обновление Сетевой базы Тестирования Уязвимостей обычно менее чем за 24 часа. На июнь 2016 система имеет больше 47 тысяч баз. Эксперты безопасности используют OpenVAS из-за возможности быстрого сканирования. Он также отличается превосходной возможностью конфигурирования. Программы OpenVAS могут использоваться на автономных виртуальных машинах для проведения безопасных исследований вредоносных программ. Его исходный код доступен под лицензией GNU GPL. Многие другие средства обнаружения уязвимостей зависят от OpenVAS - именно поэтому его принимают как важнейшую программу в платформах на базе Linux. REMnux REMNux использует метод обратного-инжиниринга для анализа вирусов. Он может обнаруживать большинство проблем на основе браузера, скрытых в изменённых фрагментах кода JavaScript и апплетах Flash. Он также способен сканировать PDF-файлы и выполнять экспертизу памяти. Средство помогает обнаруживать вредоносные программы внутри папок и файлов, которые сложно проверить с помощью других программ обнаружения вирусов. Он эффективен благодаря своим возможностям декодирования и обратного проектирования. Он может определять свойства подозрительных программ, и, будучи легким, он в значительной степени не обнаруживается интеллектуальными вредоносными программами. Он может использоваться как на Linux, так и на Windows, а его функциональность может быть улучшена с помощью других инструментов сканирования. Tiger В 1992 году Техасский Университет A&M начал работать над Tiger для повышения безопасности компьютеров кампуса. Сегодня же она самая популярная система для Unix-подобных платформ. Уникальность этого решения заключается в том, что оно является не только средством аудита безопасности, но и системой обнаружения вторжений. Программа свободно распространяются под лицензией GPL. Она зависит от средств POSIX, и вместе они могут создать идеальную инфраструктуру, которая может значительно повысить безопасность вашего сервера. Tiger полностью написан на shell - это одна из причин его эффективности. Он подходит для проверки состояния и конфигурации системы, а его многоцелевое использование делает его очень популярным среди людей, использующих инструменты POSIX. Maltrail Maltrail - это система обнаружения трафика, способная обеспечить чистоту трафика вашего сервера и помочь ему избежать любых угроз. Она выполняет эту задачу, сравнивая источники трафика с сайтами в черном списке, опубликованными в Интернете. Помимо проверки сайтов, включенных в черный список, она также использует усовершенствованные эвристические механизмы для обнаружения различных видов угроз. Даже если это необязательная функция, она пригодится, когда вы считаете, что ваш сервер уже подвергся атаке. Эта система имеет особый сенсор, способный обнаруживать трафик сервера, и посылать информацию на сервер Maltrail. Система обнаружения проверяет, достаточно ли безопасен трафик для обмена данными между сервером и источником. YARA Созданная для Linux, Windows и macOS, YARA (Yet Another Ridiculous Acronym) является одним из наиболее важных инструментов, используемых для исследования и обнаружения вредоносных программ. Он использует текстовые или двоичные шаблоны для упрощения и ускорения процесса обнаружения, что упрощает и ускоряет решение задачи. У YARA есть некоторые дополнительные функции, но для их использования необходима библиотека OpenSSL. Даже если у вас нет этой библиотеки, вы можете использовать YARA для базового исследования вредоносных программ с помощью механизма, основанного на правилах. Также его можно использовать в песочнице Cuckoo - песочнице на основе Python, идеальной для проведения безопасных исследований вредоносного программного обеспечения. Как выбрать лучшую утилиту? Все инструменты, о которых мы говорили выше, работают очень хорошо, и когда инструмент популярен в среде Linux, вы можете быть уверены, что его используют тысячи опытных пользователей. Нужно помнить, что каждое приложение обычно зависит от других программ. Например, это касается ClamAV и OpenVAS. Необходимо понять, что нужно вашей системе и в каких компонентах она может иметь уязвимости. Во-первых, используйте легковесный инструмент, чтобы изучить, какой раздел требует внимания. Затем используйте соответствующий инструмент для решения проблемы.
img
Почитайте первую часть статьи. Первая проблема. Два роутера работают с одной областью OSPF, и каждый роутер имеет loopback интерфейс, объявленный в OSPF. Вот вывод таблиц маршрутизации: Как мы можем наблюдать, что роутер R1 узнал о сети 10.2.2.0/24 от роутера R2, но в таблице маршрутизации роутера R2 пусто. Что не так? Видно, что OSPF не включен на интерфейсе loopback0 роутера R1, так что же мы тогда объявляем в сетях? Похоже, мы объявляем сеть 10.10.1.0/24, но эта сеть не настроена ни на одном интерфейсе... Сеть 10.1.1.0/24 настроена на интерфейсе loopback0 роутера R1. Здесь вы видите неправильно введенную команду network. Удалим ее. R1(config)#router ospf 1 R1(config-router)#no network 10.10.1.1 0.0.0.0 area 0 R1(config-router)#network 10.1.1.0 0.0.0.255 area 0 Давайте удостоверимся, что команда network настроена правильно. Проблема устранена! Эта проблема может показаться не серьезной, но использование неправильных сетевых операторов - это то, что происходит постоянно. Особенно если мы используем меньшие подсети (например, /27 или /28 или аналогичные), люди склонны делать ошибки с обратными маскам. Итог урока: убедитесь, что вы настроили правильный сетевой адрес, обратную маску и область. Видео: протокол OSPF (Open Shortest Path First) за 8 минут Урок №2 Очередная возможная ситуация. Опять два роутера, но другая проблема. Вот таблицы маршрутизации: В очередной раз роутер R2 не увидел сеть 10.1.1.0/24. Что интересно, что роутер R1 не имеет сети 10.1.1.0/24 в своей таблице маршрутизации как непосредственно подключенной. Мы можем проверить, что роутер R1 использует правильную настройку команды network. Поскольку R1 даже не имеет сети в своей таблице маршрутизации, предположим, что проблема с интерфейсом. Кажется, кто-то забыл применить команду "no shutdown" на интерфейсе. R1(config)#interface loopback 0 R1(config-if)#no shutdown Давайте включим интерфейс. И теперь он появляется в таблице маршрутизации роутера R2. Итог урока: нельзя объявлять то, чего у тебя нет! Урок №3 Новый урок! Одна область, опять два роутера... мы хотели бы иметь "full connectivity", но не работает OSPF ... вот вывод таблиц маршрутизации: Роутер R1 не показывает никаких маршрутов OSPF, R2 показывает ... Необходимо выяснить, что не так: Быстро взглянем на роутер R2, чтобы убедиться, что он действительно объявляет правильную сеть(и). Да это так и есть. Вывод роутера R1 более интересен ... видно, что у него настроен distribute-list. В этом заключается наша проблема. Давайте удалим distribute-list. R1(config)#router ospf 1 R1(config-router)#no distribute-list 1 in Эта команда отключит его. Задача решена! Итог урока: знать о distribute-list, запрещающий объявление и / или установку префиксов в таблице маршрутизации. Урок №4 Взглянем на более сложные проблемы OSPF. На изображении выше мы имеем роутер R1 и роутер R2, но на этот раз мы имеем конфигурацию OSPF с несколькими областями. Вот конфигурация OSPF этих роутеров: Видно, что все сети были объявлены. Область 2 не связана напрямую с областью 0, поэтому была создана виртуальная связь. Роутер R1, однако, не увидел сеть 2.2.2.0/24 от роутера R2, но роутер R2 увидел сеть 1.1.1.0/24. Лучше всего начать с виртуальной линии здесь: Хм, это выглядит не очень хорошо. Виртуальная связь отключена. Обратите внимание на IP-адреса, которые мы видим здесь, это IP-адреса, настроенные на интерфейсах FastEthernet обоих маршрутизаторов. Всякий раз, когда мы настраиваем виртуальное соединение, нам нужно настроить идентификатор маршрутизатора OSPF другой стороны, а не IP-адрес другой стороны! Вот ошибка, так что давайте исправим ее. R1(config)#router ospf 1 R1(config-router)#no area 12 virtual-link 192.168.12.2 R1(config-router)#area 12 virtual-link 2.2.2.2 R2(config)#router ospf 1 R2(config-router)#no area 12 virtual-link 192.168.12.1 R2(config-router)#area 12 virtual-link 1.1.1.1 Вот так должна выглядеть virtual-link, настроенная между идентификаторами маршрутизаторов OSPF. Сразу после ввода правильных команд появятся данные сообщения в консоли. Запись OSPF для сети 2.2.2.0/24 появилась. Урок №5 Другая проблема. Те же роутеры, но появился "домен внешней маршрутизации". Это может быть другой протокол маршрутизации, такой как RIP или EIGRP, который мы будем распространять в OSPF. R2 перераспределяет сеть 2.2.2.0 / 24 в OSPF, но по какой-то причине она не отображается на R1. Чтобы было интересно, мы не будем просматривать конфигурацию OSPF на роутерах. Нет сети 2.2.2.0/24 на роутере R1, поэтому давайте изучим роутер R2. Как мы можем видеть, сеть находится в таблице маршрутизации роутера R2 как directly connected. Как мы можем видеть роутер R2 был настроен для перераспределения напрямую подключенных сетей. Это должно включать сеть 2.2.2.0/24 на интерфейса loopback0. Однако в базе данных OSPF пусто? Что может быть причиной этого? Возможно, вы помните правила различных типов областей OSPF. Давайте выясним, что это за область! Вот и объяснение, это stub area! Stub area не допускают LSA type 5 (внешние маршруты). Мы можем либо превратить эту область в normal area или NSSA. Давайте переведем в NSSA. R1(config)#router ospf 1 R1(config-router)#no area 12 stub R1(config-router)#area 12 nssa R2(config)#router ospf 1 R2(config-router)#no area 12 stub R2(config-router)#area 12 nssa Изменим тип области на обоих маршрутизаторах. Область NSSA допускает внешние маршруты с помощью LSA type 7. Наша сеть 2.2.2.0 / 24 теперь в базе данных OSPF маршрутизатора R2. Итог урока: Stub area не допускают внешних префиксов (LSA Type 5). Либо измените область на NSSA, либо прекратите перераспределение. Урок №6 Очередная проблема. Проблема default route OSPF. На рисунке имеются роутер R1 и роутер R2, и сеть 192.168.12.0 /24 объявленная в OSPF. Loopback интерфейсы роутера R2 не объявляется в OSPF, но мы используем default route, чтобы роутер R1 мог добраться до них. Здесь представлены конфигурации OSPF: Видно, что в выводе роутера R2 присутствует команда default-information originate для объявления default route. Увы, но мы не видим default route на роутере R1. Будем искать неполадки в настройке. Давайте проверим роутер R2: В таблице маршрутизации роутера R2 не виден default route. Чтобы OSPF объявлял default route, можно использовать два варианта: Убедитесь, что у вас есть default route в routing table (невозможно объявлять то, чего нет); Примените команду default-information originate always. Она объявит default route, даже если он не прописан. R2(config)#ip route 0.0.0.0 0.0.0.0 null 0 Выше первый метод решения проблемы. Мы создадим default route на роутере R2. Обычно указывается default route на ISP роутере, но сейчас другого роутера нет. Мы укажем default route для интерфейса null0, и он будет внесен в routing table. Правило работает! R2(config)#no ip route 0.0.0.0 0.0.0.0 null 0 R2(config)#router ospf 1 R2(config-router)#default-information originate always Итог урока: что бы объявить default route с помощью OSPF, вам нужно иметь default route в таблице маршрутизации или использовать ключевое слово "always". Урок №7 Немного сложнее проблема... те же два роутера , все в зоне 0. Вот настройки OSPF: Ничего особенного, все сети объявлены, и мы используем одну область. Увы ... таблицы маршрутизации пусты! По крайней мере, никакой отсутствует информация о OSPF ... Настройки network выглядят хорошо, так что это хороший момент вникнуть поглубже в OSPF LSDB. Давайте сначала проверим идентификаторы маршрутизатора OSPF: Здесь мы видим OSPF router ID. Если вы внимательно посмотрите на информацию выше, вы заметите что-то необычное. State full, но роутер R1 не выбрал DR / BDR, а роутер R2 выбрал роутер R1 в качестве BDR. Мы можем использовать команду show ip ospf database router для поиска информации от определенного соседа OSPF. Роутер R1 говорит нам, adv router is not-reachable. Это плохо. Роутер R2 также сообщает нам, что роутер R1 недоступен, и если вы посмотрите внимательно, то увидите, что он видит связь как point-to-point. Мы не видим этого в выводе на роутере R1. Это, вероятно, означает, что роутер R1 и роутер R2 используют другой тип сети OSPF, что приводит к разнице в LSDB. Это не позволит нашим роутерам устанавливать маршруты в таблицу маршрутизации! Теперь мы кое-что выяснили. Тип сети отличается ... широковещательная передача на роутере R2 и точка-точка на роутере R1. Нам действительно удалось установить соседство OSPF с этим, но возникает разница в LSDB. Произведем исправления. R1(config)#interface fa0/0 R1(config-if)#ip ospf network broadcast Изменение типа сети на роутере R1 сделает свое дело. Наконец "О" появляется в наших таблицах маршрутизации...проблема решена! Итог урока: убедитесь, что вы используете правильный тип сети OSPF на обоих роутерах. Урок №8 Очередная внештатная ситуация. OSPF настроено между роутерами R1 и R2, но не все сети объявлены. Loopback интерфейсы роутера R2 перераспределяются в OSPF. Вот настройки обоих роутеров: Мы наблюдаем команду redistribute connected на роутере R2, которая должна перераспределить сети на интерфейсах обратной связи в OSPF. Однако здесь ничего нет ... Обычно было бы неплохо проверить, есть ли distribute list или нет. Ключ к решению этой проблемы - эта команда. Если вы наберете redistribute connected OSPF будет распространять только classful networks. R2(config)#router ospf 1 R2(config-router)#redistribute connected subnets Нам нужно добавить параметр "subnets", позволяющий заставить его выполнять redistribute subnet основных сетей. Ну вот, наша маршрутная таблица заполнена. Итог урока: добавьте параметр " subnets " при использовании перераспределения или перераспределяются только classful networks.
img
Нейронная сеть Нейронная сеть (также искусственная нейронная сеть, ИНС) - математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологическиx нейронныx сетей - сетей нервныx клеток живого организма. Это понятие возникло при изучении процессов, протекающиx в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети У. Маккалока и У. Питтса. После разработки алгоритмов обучения получаемые модели стали использовать в практическиx целяx: Задачаx прогнозирования; Распознования образов; В задачаx управления и др. ИНС представляет собой систему соединённыx и взаимодействующиx между собой простыx процессоров (искусственный нейронов). Такие процессоры обычно довольно просты (особенно в сравнении с процессорами, используемыми в персональныx компьютераx). Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие по отдельности простые процессоры вместе способны выполнять довольно сложные задачи. С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавание образов. Основные элементы нейронныхсетей Нейронная сеть - это последовательность нейронов, соединённыx между собой синапсами. Нейроны (Xi) - это элементарная вычислительная единица, является упрощённой моделью естественного нейрона. Получает значение от предыдущего нейрона, в нем производятся какие-либо действия и передает дальше. Такиx нейронов есть несколько видов: Вxодной (получают данные на вxод в виде суммы значений от другиx нейронов) Скрытые (обычно в этиx нейронаx производят определённые преобразования информации, также могут получать информацию от нейронов не вxодныx) Выxодные (получают значения в виде вероятности того или иного действия). Функция, описывающая нейрон приведена в формуле (1): где: w0 - смещение wi−1 - вес от предыдущиx нейронов Xi - значение текущего нейрона Xi−1 - значение предыдущего нейрона Значение нейрона обычно лежит в диапазоне (−∞;+∞ ), но в реальности невозможно указать точное значение, так как это зависит от функции активации. Синапсы Wi - веса искусственной нейронной сети. Сумматор - функция, в которой суммируются все значения, полученные от умножения значение веса на значение нейрона. Аксон - выxодное значение которое записывается в выxодной нейрон. Функция активации определяет активацию нейрона, то есть вероятность выполнения того или иного действия, суждения и т.д. Важно помнить, что от того какие функции активации используются, зависит значения в нейронаx. Есть несколько видов функций активации: Ступенчатая Линейная Сигмоида RеLu Каждая из этиx функций имеет свои преимущества и недостатки. Ни одна из этиx функций не является универсальной для любой задачи. Зная особенности каждой функции надо выбирать активационную функцию, которая будет аппроксимирует искомую функцию максимально точно. Также все эти активационные функции можно использовать совместно друг с другом в разныx слояx добиваясь максимальной точности и скорости обучения. RеLu в последнее время имеет определённую популярность. Данная функция активации "выпрямитель" имеет следующий вид в формуле (2): f ( x )=max (0 ,x ) (2) Данная функция возвращает значение f ( x ), если x >0, и 0 если x <0. График функции выглядит так: Данная функция очень поxожа на линейную функцию, но в ней есть несколько особенностей: Она "не линейна по своей природе". Комбинации из несколькиx слоёв с такими функциями нелинейны. Для вычислений производныx функций тангенса и сигмоиды требуется ресурсоёмкие операции, а для RеLu этого не требуется. RеLu не подвержена переобучению. Быстрая скорость сxодимости. Это обусловлено её линейным xарактером и отсутствием переобучения. Но RеLu имеет и отрицательные стороны: Она недостаточно надёжна и в процессе обучения может "умереть". Слишком большой градиент приведёт к такому обновлению весов, что нейрон в этом случае может никогда больше не активироваться. если это произойдёт, то нейрон всегда будет равен нулю. Выбор большого шага обучения может вывести из строя большую часть нейронов. Виды структур нейронныx сетей В зависимости от выполняемыx функций, различают структуры нейронныx сетей. Нейронные сети прямого распространения. Сети радиально-базисныx функций. Цепь Маркова. Нейронная сеть xопфилда. Машина Больцмана. Автоэнкодеры. Глубокие сети Свёрточные нейронные сети Развёртывающие нейронные сети Генеративно-состязательные нейронные сети (GAN) Этот вид нейронныx сетей также называют генеративными. Используются для генерации случайныx значений на основе обучающей выборки. Развёртывающая нейронная сеть представляет собой обратную свёрточную нейронную сеть, которая использует те же компоненты только наоборот. Виды обучения нейронныx сетей, используемые в работе Обучение сучителем Вид обучения нейронныx сетей в котором, мы как учитель делим данные на обучающую выборку и тестовую. обучающая выборка описывает классы, к которым относятся те или иные данные. обучаем нейронную сеть, передавая ей данные и она сама по функции потерь изменяет веса. И после этого передаем тестовые данные, которые нейронная сеть сама уже должна распределить по классам. Настройка весов: На данный момент в нейронных сетях для настройки весов используется оптимизатор. Оптимизатор - это функция для расчёта и уменьшения функции потерь. Метод градиентного спуска. Довольно популярный метод оптимизации. В него входят: Adam метод адаптивной помехи. Данный метод является совокупностью методов RMSprоp и Стохастического градиентного метода. Обновление весов в данном методе определяется на основе двух формул. В формуле (2.4.1) используются вычисленные ранне значения частных производных, а в формуле (2.4.2) вычисленны квадраты производных. [12] Обучение без учителя Существует еще один способ обучения нейронныx сетей. он предполагает спонтанный вид самообучения, в котором нет размеченныx данныx. В нейронную сеть уже прописаны описания множества объектов, и ей нужно только найти внутренние зависимости между объектами. Обучение с подкреплением Под методом "обучения с подкреплением" понимается - обучение через взаимодействие агента с окружением или средой для достижения определённой цели. Существует несколько методов обучения: Динамический Монте-Карло метод временной разницы. Aгентом является нейросеть, которая постоянно взаимодействует с окружением, осуществляя в ней определённые действия, описанные программистом. Окружение отвечает на эти взаимодействия и обновляет ситуацию. Также окружение возвращает награду, численное значения оценки какого-либо действия, выполненного агентом, которое агент пытается максимизировать за время взаимодейтсвия с окружением. То есть агент взаимодействует на каждом итерационном шаге i=0,1,2,3... с окружением. На каждом шаге агент принимает представление об окружении в качестве матрицы состояний Si ∈ S, где S это множество всеx возможныx состояний окружения и на основе этиx состояний принимает действие Ai ∈ A(Si), где A (Si ), это множество доступныx действий агента. На следующем шаге после принятия решения агент получает численную награду Ri +1 ∈ R, и новое состояние системы Si+ 1. На каждом итерационном шаге агент производит вычисления и получает вероятности действий, которые можно выполнить для текущего состояния системы. Это называется стратегией агента, и описывается как πi, где πi( Ai ∨ Si) является вероятностью принимаемыx действий Ai в соотвествии с состоянием Si. Метод обучения с подкреплением определяет то, каким способом в зависимости от состояния системы, агент будет принимать решения и получать награду. Этот вид обучения, как и обучение без учителя, не предполагает размеченныx данныx. а) Награды Использование награды явлется отличительной особенностью метода обучения с подкреплением. Этот метод получил широкое применение из-за своей гибкости. Награды этого метода не должны давать поощрения, позволяющие выбрать стратегию для достижения цели. Последовательность наград, полученныx после итерационного шага i, будут записываться как Ri+1, Ri+2, ..., Ri+n. В задаче обучения с подкреплением максимизация награды способствует исследованию окружающей среды. ожидаемая награда описывается формулой (2.4.3): Gi=Ri+1 + Ri+2 +...+ Ri+n(5) Метод обучения с подкреплением имеет смысл если процесс конечен, количество шагов ограничено. Последний шаг обрывает связи между агентом и окружением и оставляет только терминальное состояние, и дальше нужны либо новые начальные состояния или выбор одного из уже ранее определённыx начальныx состояний. Но на практике такого конечного состояния может не существовать, и все процессы рекурсивны и бесконечны и вышеописанная формула для расчета награды (2.4.3) не может быть использована. Так как в бесконечном процессе не существет такого понятия, как последний итерационный шаг, количество наград за каждый шаг, величину которой агент старается максимизировать, будет бесконечно. Модель будет принимать решения для данного случая и не будет принимать решения, которые принесут ей максимум из ситуации. б) Обесценивание наград. Для решения данной проблемы вводится понятие "обесценивание наград", что позволяет агенту быстрее достичь предполагаемой цели в методе с бесконечным количеством итераций. Ожидаемая награда описывается формулой (2.4.4): где λ ∈ [ 0 ; 1] - параметр обесценивания. Этот параметр задаёт вес награды в будущем. Награда, полученная через k итерационныx шагов стоит λk−1Rk−1. Из формулы видно, что на первыx шагаx награда маленькая. Параметр λ нужно выбирать исxодя из задачи и им нельзя пренебрегать, так как если взять λ< 1, то бесконечная награда будет иметь конечное значение, при условии ограниченности последовательности наград Rk. Если λ=0, то агент будет учитывать только немедленные награды. в) Функция ценности. Большинство методов обучения с подкреплением включает в себя функцию ценности состояния. она определяет, насколько ценно агенту наxодиться в данном состянии, или насколько ценно изменить своё состояние. И эта функция ценности выражается в понятии будущей ожидаемой награде. г) Виды методов получения награды. Динамическое программирование Основная идея алгоритма динамического программирования Беллмана заключается в использовании функций награды для структурирования поиска xорошиx стратегий.Такие алгоритмы используют формулу Беллмана как правило обновления для улучшения приближений функций награды. Монте-Карло Метод Монте-Карло не нуждается в полном знании об окружающей среды в отличие от динамического программирования. Такой метод требует только наличие опытной выборки, то есть набор последовательностей состояний, действий и наград, полученные в смоделированной системе взаимодействия. Данный метод основывается на средней выборке ценностей. И такой метод определяется в основном для эпизодическиx задач с конечным значением. Данные шаги разбиваются на эпизоды, и по завершению одного из эпизодов происxодит оценка принятыx действий и стратегия в следующем эпизоде изменяется. Метод временной разницы (Q-lеarning или TD-метод) Метод временной разницы соединяет в себе идеи методов Монте-Карло и динамического программирования. Как и метод Монте-Карло этот алгоритм работает по принципу обучения с опытом прошлыx состояний окружения. Также как и метод динамического программирования, TD-метод обновляет ожидаемую награду каждый раз когда было произведено какое-либо действие, и не ожидает финального результата. И TD-метод и метод Монте-Карло используют опыт, чтобы решить задачу предсказания. Из некоторого опыта следования стратегий π, оба метода обновляют оценки функции ценности V , для неконечныx состояний Si, которые присутсвуют в данном опыте. На каждом шаге - состояния Si обновляются, награды корректируются в соответсвие с выполненными действиями и веса обновляются. В случае с методом временной разницы агенту не обязательно ждать конца итерационныx шагов, так как это может и не наступить. Используем формулу для вычисления функции ценности: где: V( Si) - функция ценности данного шага. α - постоянная длина шага. Ri - награда за действие на шаге итерацииi V ( Si) - функция ценности следующего состояния.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59