По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В статье пойдет речь о расположении файлов и папок, как использовать поиск для нахождения нужной информации. Задача ознакомление с предназначение основных папок в операционной системе Linux и то, что в них находиться. Разберемся в структуре FHS и посмотрим, как искать файлы и команды. FHS (File System Hierarchy Standard) – это стандартная иерархия ОС. Согласно Hierarchy FHS - есть стандартные папки, которые должны располагаться в корне. Вот классическое расположение файлов и папок в корневой папке ОС Linux. Стандарт FHS был изначально предназначен для того, чтобы во всех дистрибутивах ОС Linux могли понять и найти все, что нам нужно. Некоторые дистрибутивы Linux отклоняются от этого стандарта, но не сильно в целом данный стандарт соблюдается. Перечислим основные папки и их предназначение. /bin – базовые исполняемые файлы /boot – файлы loader /dev – устройства /etc – конфигурация ПК /home – домашние директории /lib – библиотеки ядра /proc – информация о работающей системе /media – монтирование носителей /mnt – монтирование носителей /opt – дополнительное программное обеспечение /root – домашняя директория админа /sbin – основные программы настройки системы /srv – данные системных служб /tmp – временные файлы /usr – бинарные файлы пользователей /var - переменные Первая папка bin в ней находятся базовые исполняемые файлы команд, т.е все команды которые может использовать пользователь они находятся здесь в данной папке. Папка boot – в данной папке находятся файлы загрузчика. Обычно это отдельный диск примонтированный в котором находиться ядро Linux. В папке dev – находятся файлы всех устройств в операционной системе Linux все и даже устройства представляют собой файлы. Папка etc – здесь находиться конфигурация нашего конкретного ПК, в ней много подпапок и в ней лежит конфигурация. В директории home находятся домашние папки всех пользователей, кроме пользователя root. В данной папке находятся документы, рабочий стол и т.д все что относится к пользователю. Папка lib здесь находятся общие библиотеки и модули ядра. Папка proc – здесь находятся вся информация о запущенных в данный момент процессах. В данную папку монтируется виртуальная файловая система procfs. Папка media создана для монтирования съемных накопителей типа USB или CD-ROM. В старых версиях Linux и до сих пор осталась, есть папка mnt. Раньше в нее монтировались съемные носители, теперь же данную папку обычно используют для монтирования дополнительных файловых систем. Папка opt - для установки дополнительного программного обеспечения. Папка root – говорит сама за себя. Папка sbin в данной папке лежат настройки серьезных таких компонент, как файрвол iptables, например, или процесс инициализации init. Папка srv в ней лежат данные для всех системных служб. Папка tmp – понятно, что в ней хранятся временные файлы. Причем данные файлы там хранятся до перезагрузки операционной системы, во время нее они удаляются. В папке usr хранятся двоичные файлы, которые относятся непосредственно к пользователю, например, игры или программы, т.е то что пользователь самостоятельно установил. Папка var – папка переменные, здесь обычно размещается почта или логи программ. Понятно, что это стандарт во многих дистрибутивах могут быть отклонения, но в том или ином виде все эти папки присутствуют в различных дистрибутивах. Подробнее про структуру FHS можно прочитать здесь Вторая часть не менее важная, как же найти в данных папках необходимую информацию. Команды, используемые для поиска: Grep – Утилита поиска по содержимому в том числе и внутри файла Find - Утилита поиска файлов по свойствам. Серьезная утилита, которая начинает поиск файлов по файловой системе в реальном времени, у данной утилиты есть множество ключей и параметров Locate – Это быстрый поиск файлов. Which – Поиск команды. Выводит минимальное количество информации Type – Вывод точной команды Whereis – Поиск команды, исходников и мануалов. Серьезный глубокий инструмент Начнем с find / -name mail. Данная команда начнет искать в корневой папке / все файлы с именем mail. Данная команда рекурсивно осуществляет поиск по всей файловой системе. Т.к мы запустили поиск от пользователя root, то он пробежался по всем папкам спокойно, если запускать от обычного пользователя, то может не хватать прав. Есть другая команда - locate mail. Данная команда отрабатывает практически мгновенно. Команда find искала именно по синтаксису, плюс можно добавлять сложные конструкции поиска. Команда locate делает проще показывает все где находится сочетание символов. Запустим поиск с помощью команды find / -user siadmin, поиск будет искать все что касается данного пользователя. Поиск опять идет дольше, чем поиск командой locate siadmin. Дело в том, что данная команда по умолчанию ищет не везде и у нее есть конфигурационный файл cat /etc/updatedb.conf. В данном конфигурационном файле мы можем увидеть, что данная утилита не ищет в примонтированных файловых системах. Даная строчка # PRUNENAMES=".git .bzr .hg .svn", говорит о том , что в данных форматы в поиске не выдаются. Поиск не производится в папках PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /home/.ecryptfs /var/lib/schroot". И не ищет в перечисленных файловых системах в файле. Данный файл можно конфигурировать и будут манятся параметры поиска. Создадим файл текстовый touch Vadim.txt. И попробуем найти - locate Vadim.txt. Ничего не нашел. find Vadim.txt - поиск успешен. locate работает с индексной локацией. Данный механизм напоминает индексацию файлов в MS Windows. Проходит индексация файлов и папок и после этого windows знает, что и где лежит. А если индексация не была проведена, то операционная система Windows или говорит, что ничего не найдено или поиск происходит длительное время. Аналогично утилита locate работает в Linux. Раз в день, команда locate запускает команду find. Команда find пробегает по всей файловой системе, а команда locate создает некую Базу данных и запоминает где и что находиться. Именно поэтому команда find работает долго, а команда locate работает практически моментально. Locate знает, где и что лежит в тот момент когда find искал. Но есть большой минус, данная функция происходит раз в день и изменения могут быть не актуальны. Для обновления базы данных команды locate, необходимо ее запустить вручную updatedb. Т.е ест конфигурация /etc/updatedb.conf и мы запускаем обновление Базы данных команды. После обновления, команда будет практически мгновенно находить. И последняя часть статьи, в которой необходимо рассмотреть поиск по командам. Тут достаточно просто, есть команда ls – она показывает содержимое папки. Мы можем найти где находиться данная команда which ls и получим, что она находиться /bin/ls. Т.е. команда ls хранится в папке bin – где хранятся бинарники тех команд, которые могут быть вызваны пользователями. По сути когда мы набираем команду ls, мы вводим /bin/ls. У нас есть команда type. Обратите внимание, когда мы вызываем команду ls срабатывает подсветка файлов и так далее, т.е. настройки оболочки. Когда мы запускаем напрямую /bin/ls то вызывается непосредственно команда и игнорируются настройки оболочки. Причина заключается в том, что когда мы запускаем просто команду ls, то она запускается с некоторыми ключами. Чтобы узнать, что за ключи используются необходимо набрать type ls. Обратите внимание, что команда ls – это алиаспсевдоним. Т.е запуская в таком режиме, фактически мы вводим /bin/ls –color=auto. И получаем красивый вывод. Type позволяет выводить псевдоним. Есть еще одна команда, которая более детальную информацию выводит whereis ls. Для ls там не много информации. Показывает, где лежит и к какому пакету относится.
img
Большинство приложений и веб-администраций привыкли к тому, то клиенты вспоминают и вводят свои пароли каждый раз при входе в систему. Помимо того, что это тяготит клиентов, такой подход представляет угрозу безопасности, так как клиенты часто выбирают ненадежные пароли и повторно используют из во многих других администрациях. Эти проблемы решаются на основе проверки на основе токенов (или токенов). Как насчет того, чтобы посмотреть, как это помогает? Определение токена Мы должны начать с точных значений «токенов», которые в основном представляют собой измененные формы паролей или выражений, которые используются для проверки символов. Когда происходят какие-то обмены данных в Интернете, токены аутентификации являются очень полезными инструментами для демонстрации своей личности во время входа в систему, обновлений, покупок и других процессов. Интересным в токенах является то, что они могут быть последовательными, как при входе в систему, или могут быть более «фиктивными», требуя «контакта» (дополнительного подтверждения или физического присутствия), чтобы гарантировать, что вы тот, за кого себя выдаете, и что вам действительно можно войти. Токены более безопасны, так как они не должны содержать информацию о клиенте и создаются путем вычислений или выполнения программы. Это существенно лучше в сравнении с тем, что некоторые организации используют индивидуальные данные клиентов в качестве своего регистрационного номера, что позволяет злоумышленникам без особых усилий использовать в своих целях еще больше пользователей. Клиенты, которые используют некоторые частные данные для своих паролей, беспомощны против тех, кто без особых усилий нашел их, просматривая страницы в социальных сетях этих клиентов. Аутентификация на основе токенов Токены можно использовать для многофакторной аутентификации (MFA - multi-factor authentication) и серверных протоколов, которые соединяют приложения, API и веб-сайты. Важность аутентификации на основе токена Отойдите в сторону от технологий для того, чтобы рассмотреть проблему, которую вы пытаетесь решить. Вы просите законных пользователей подтвердить свою личность, чтобы не пропустить злоумышленников в вашу сеть (где они могут украсть данные, установить программы-вымогатели и т.д.). Так как токен основан на закрытом ключе устройства, то, когда мы используем токен из приложения, такого как PingID, брелка или ключа, который мы подключаем к нашему компьютеру, мы предотвращаем вмешательство внешних субъектов. «Зачем» заключается в том, чтобы выбрать решение для аутентификации на основе токенов, которое проверяет пользователей, не создавая конфликтов и безвыходных положений. Пользователи довольны, а данные в безопасности, когда процесс проходит гладко. Аутентификация на основе токена в действии Клиентам могут быть предоставлены токены подтверждения различными способами, включая токены на базе оборудования, одноразовые пароли (обычно предоставляемые с помощью мобильных телефонов) и токены, созданные с помощью программирования на основе стандарта JWT. Все токены хранят характеристики и информацию о клиенте в безопасном виде. С учетом такого бесчисленного количества правил защиты информации, имеющимися на сегодняшний день, токен также может проверять, что информация достоверна и не была изменена, что является основным условием безопасности. Они также расширяют возможности клиентов, позволяя им входить в систему, не запоминая пароли. Подтверждение на основе токена обычно происходит в четыре этапа: Требование – клиент требует доступ к защищенному ресурсу, который его интересует. Клиент изначально должен как-то отличиться без использования токена, например, воспользовавшись именем пользователя или секретной фразой. Подтверждение – проверка гарантирует, что сертификаты клиента являются действительными и что клиент имеет соответствующие полномочия в указанной инфраструктуре. Токены – токен выдается инфраструктурой и передается клиенту. Этот процесс включает в себя предоставление токенов клиенту за счет токена оборудования. Это происходит «за кулисами» при генерации токенов, так как взаимодействие клиента происходит с сервером. Определение – токен фактически хранится у клиентов, будь то в их программе или на их мобильном телефоне. Это дает им возможность в будущем проходить проверку без использования сертификатов. Преимущества и недостатки аутентификации на основе токена У такой процедуры есть свои преимущества и недостатки, как и у любого другого подхода или метода. Преимущества Эффективность. Программные токены более эффективны и универсальны, чем фактические Токены. Сервер может создавать и проверять сколько угодно токенов в зависимости от ситуации, что упрощает масштабирование количества клиентов, обращающихся к вашему сайту или веб-приложению. Они также не предполагают, что организации будут предоставлять своим клиентам фактические токены. Адаптивность. Программные токены являются гибкими в том смысле, что они могут быть задействованы на нескольких серверах и одновременно проверять различные сайты и приложения. Они часто используются для реализации системы единого входа (SSO - single sign-on), что упрощает работу клиентов, а также повышает безопасность. Безопасность. Токены JWT не фиксирует свое текущее состояние и должны быть подтверждены, когда закрытый ключ получен приложением на стороне сервера, которое их создало. Поэтому они считаются надежным и безопасным методом проверки. Недостатки Скомпрометированный секретный ключ. Наличие всего одного ключа является существенным недостатком в стандарте JWT. В случае, если за ключом, как предполагалось, не следят проектировщики и администраторы сайта, и он вдруг перехватывается злоумышленниками, то конфиденциальная информация может быть раскрыта. Это может позволить злоумышленникам имитировать клиентов и перехватывать встречи с клиентами, что трудно определить и остановить. Служебная информация. JWT намного больше стандартного токена встреч и заполняется по мере добавления дополнительной информации о клиенте. Добавление дополнительной информации к маркеру может увеличить время загрузки страницы за счет увеличения времени, необходимого для организации встречи с клиентом. Долговременная аутентификация не идеальна. Системы, позволяющие клиентам оставаться в системе в течение длительного периода времени, не очень хороши. Эти токены требуют постоянной повторной проверки, что может раздражать клиентов. Хорошей альтернативой в этом случае является использование токенов обновления и их правильное хранение. Клиенты могут использовать токены обновления, чтобы оставаться в сети в течение более длительных периодов времени без необходимости повторного подтверждения. Насколько безопасна аутентификация на основе токена? Так как киберпреступность не стоит на месте, а развивается, то специалистам по управлению следует постоянно обновлять свои стратегии и механизмы обеспечения безопасности. Участись атаки с использованием фишинга, физических сил и слов-ссылок с целью получения доступа. Теперь пароли не подходят для подтверждения. Проверка на основе токенов, в сочетании с другими стратегиями проверки, может стать еще более сложным препятствием, которое не позволит даже опытным хакерам воспользоваться взломанными паролями. Токены должны быть извлечены из устройства, которое их создало (например, мобильного телефона или генератора ключей), что делает их на сегодняшний день исключительно хорошей стратегией подтверждения. Хотя этапы проверки токенов имеют массу преимуществ, обычно это очень затратный процесс. Токены, хранящиеся в сотовых телефонах, можно использовать, но они могут оказаться бесполезными из-за каких-либо дефектов гаджета. Токены можно спокойно перехватить, если предположить, что они были отправлены через сообщение. Злоумышленник может получить токены, хранящиеся на устройстве, если оно было потеряно или украдено. Тем не менее, стоит помнить, что нельзя полагаться на стратегию однократной проверки. Проверка токена должна использоваться для двухфакторного или многофакторного подтверждения. Типы токенов 1. Аппаратный ключ (токен) (USB-ключ) Токены оборудования – это реальные устройства, которые после утверждения позволяют клиентам получать доступ к защищенным сетям. Иначе их называют токенами проверки или безопасности. Токен оборудования используется для добавления дополнительного уровня безопасности посредством двухфакторной или многофакторной проверки (2FA или MFA). Владелец такого токена подключает его к системе или администрации, которую будет использовать. Для того, чтобы обеспечить превосходное обслуживание клиентов и возможность адаптироваться, токены оборудования поставляются различных форм и размеров. Самые известные токены – USB-ключи или удаленные токены. 2. JWT – JSON веб-токен Этот тип является открытым стандартом для обработки данных JSON (RFC 7519). Он подразумевает определенную бесплатную методологию для безопасной передачи данных между сторонами. Для передачи данных между сторонами стандарт JWT использует объекты JSON. Эти токены можно использовать для подтверждения, а также для перемещения дополнительных данных о клиенте или записи. JWT могут быть отправлены в виде URL-адресов, ограничений POST или заголовков HTTP и могут быть быстро переданы ввиду их небольшого размера. Чтобы избежать различных информационных индексных запросов, JWT содержит всю основную информацию о компоненте. Чтобы подтвердить токен, получателю JWT не нужно обращаться к серверу. JWT состоит из трех частей: Заголовок, содержащий информацию о типе токена и использованном методе шифрования. Полезная нагрузка, содержащая возможности подтверждения наряду с дополнительной информацией о клиенте или записи. Отпечаток, объединяющий криптографический ключ, который можно использовать для подтверждения полезности полезной нагрузки. 3. Токен одноразового пароля (OTP - One-Time Password) Это защищенное оборудование или программное устройство, которое генерирует одноразовые пароли. Чаще всего используются индивидуальные идентификационные номер (PIN), которые представляют собой числовые коды от 4 до 12 цифр. Одноразовые пароли в большинстве случаев создаются и получаются с помощью мобильных телефонов. После подтверждения владения телефоном клиент может использовать приложение-аутентификатор для создания одноразовых паролей. В этом случае телефон выступает в роли генератора кода. OTP также можно отправлять с устройства через SMS. Объединяя созданные системы проверок, одноразовые пароли дополняют проверку пользователей и паролей. Токены OTP создают PIN-коды одновременно или нет, в зависимости от сервера. Одновременные токены создают одноразовый пароль, используя ваш закрытый ключ и текущее время, а то время как неодновременный использует механизм аутентификации «запрос-ответ» (CRAM - Challenge Response Authentication Mechanism), набор соглашений, в которых сервер задает вопрос, а токендолжен дать правильный ответ. 4. Токен API Этот тип токена служит полезным идентификатором для приложений, запрашивающих доступ к вашей администрации. Приложение в этот момент использует токен API, созданный вашей администрацией, чтобы запросить доступ к вашей администрации. Токен API сравнивается с тем, который вы сохранили для проверки и предоставления доступа. Время от времени можно использовать идентификатор сессии, но это отдельный случай. Токен программного интерфейса становятся все более безопасным вариантом, в отличие от отправки набора имени пользователя и пароля по HTTP. OAuth2 – это одно из наиболее широко используемых на сегодняшний день соглашений о безопасности API.
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