Нейронные сети для начинающих. Часть 1 / Хабр
Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.
Поэтому сейчас, когда я достаточно хорошо освоил нейронные сети и нашел огромное количество информации с разных иностранных порталов, я хотел бы поделиться этим с людьми в серии публикаций, где я соберу всю информацию, которая потребуется вам, если вы только начинаете знакомство с нейронными сетями.
Первым и самым важным моим открытием был плейлист американского программиста Джеффа Хитона, в котором он подробно и наглядно разбирает принципы работы нейронных сетей и их классификации. После просмотра этого плейлиста, я решил создать свою нейронную сеть, начав с самого простого примера. Вам наверняка известно, что когда ты только начинаешь учить новый язык, первой твоей программой будет Hello World. Это своего рода традиция. В мире машинного обучения тоже есть свой Hello world и это нейросеть решающая проблему исключающего или(XOR). Таблица исключающего или выглядит следующим образом:
a | b | c |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Соответственно, нейронная сеть берет на вход два числа и должна на выходе дать другое число — ответ. Теперь о самих нейронных сетях.
Что такое нейронная сеть?
Нейронная сеть — это последовательность нейронов, соединенных между собой синапсами. Структура нейронной сети пришла в мир программирования прямиком из биологии. Благодаря такой структуре, машина обретает способность анализировать и даже запоминать различную информацию. Нейронные сети также способны не только анализировать входящую информацию, но и воспроизводить ее из своей памяти. Заинтересовавшимся обязательно к просмотру 2 видео из TED Talks: Видео 1, Видео 2). Другими словами, нейросеть это машинная интерпретация мозга человека, в котором находятся миллионы нейронов передающих информацию в виде электрических импульсов.
Какие бывают нейронные сети?
Пока что мы будем рассматривать примеры на самом базовом типе нейронных сетей — это сеть прямого распространения (далее СПР). Также в последующих статьях я введу больше понятий и расскажу вам о рекуррентных нейронных сетях. СПР как вытекает из названия это сеть с последовательным соединением нейронных слоев, в ней информация всегда идет только в одном направлении.
Для чего нужны нейронные сети?
Нейронные сети используются для решения сложных задач, которые требуют аналитических вычислений подобных тем, что делает человеческий мозг. Самыми распространенными применениями нейронных сетей является:
Классификация — распределение данных по параметрам. Например, на вход дается набор людей и нужно решить, кому из них давать кредит, а кому нет. Эту работу может сделать нейронная сеть, анализируя такую информацию как: возраст, платежеспособность, кредитная история и тд.
Предсказание — возможность предсказывать следующий шаг. Например, рост или падение акций, основываясь на ситуации на фондовом рынке.
Распознавание — в настоящее время, самое широкое применение нейронных сетей. Используется в Google, когда вы ищете фото или в камерах телефонов, когда оно определяет положение вашего лица и выделяет его и многое другое.
Теперь, чтобы понять, как же работают нейронные сети, давайте взглянем на ее составляющие и их параметры.
Что такое нейрон?
Нейрон — это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной (синий), скрытый (красный) и выходной (зеленый). Также есть нейрон смещения и контекстный нейрон о которых мы поговорим в следующей статье. В том случае, когда нейросеть состоит из большого количества нейронов, вводят термин слоя. Соответственно, есть входной слой, который получает информацию, n скрытых слоев (обычно их не больше 3), которые ее обрабатывают и выходной слой, который выводит результат. У каждого из нейронов есть 2 основных параметра: входные данные (input data) и выходные данные (output data). В случае входного нейрона: input=output. В остальных, в поле input попадает суммарная информация всех нейронов с предыдущего слоя, после чего, она нормализуется, с помощью функции активации (пока что просто представим ее f(x)) и попадает в поле output.
Важно помнить, что нейроны оперируют числами в диапазоне [0,1] или [-1,1]. А как же, вы спросите, тогда обрабатывать числа, которые выходят из данного диапазона? На данном этапе, самый простой ответ — это разделить 1 на это число. Этот процесс называется нормализацией, и он очень часто используется в нейронных сетях. Подробнее об этом чуть позже.
Что такое синапс?
Синапс это связь между двумя нейронами.
У синапсов есть 1 параметр — вес. Благодаря ему, входная информация изменяется, когда передается от одного нейрона к другому. Допустим, есть 3 нейрона, которые передают информацию следующему. Тогда у нас есть 3 веса, соответствующие каждому из этих нейронов. У того нейрона, у которого вес будет больше, та информация и будет доминирующей в следующем нейроне (пример — смешение цветов). На самом деле, совокупность весов нейронной сети или матрица весов — это своеобразный мозг всей системы. Именно благодаря этим весам, входная информация обрабатывается и превращается в результат.Важно помнить, что во время инициализации нейронной сети, веса расставляются в случайном порядке.
Как работает нейронная сеть?
В данном примере изображена часть нейронной сети, где буквами I обозначены входные нейроны, буквой H — скрытый нейрон, а буквой w — веса. Из формулы видно, что входная информация — это сумма всех входных данных, умноженных на соответствующие им веса.
Функция активации
Функция активации — это способ нормализации входных данных (мы уже говорили об этом ранее). То есть, если на входе у вас будет большое число, пропустив его через функцию активации, вы получите выход в нужном вам диапазоне. Функций активации достаточно много поэтому мы рассмотрим самые основные: Линейная, Сигмоид (Логистическая) и Гиперболический тангенс.
Главные их отличия — это диапазон значений.Линейная функция
Эта функция почти никогда не используется, за исключением случаев, когда нужно протестировать нейронную сеть или передать значение без преобразований.
Сигмоид
Это самая распространенная функция активации, ее диапазон значений [0,1]. Именно на ней показано большинство примеров в сети, также ее иногда называют логистической функцией. Соответственно, если в вашем случае присутствуют отрицательные значения (например, акции могут идти не только вверх, но и вниз), то вам понадобиться функция которая захватывает и отрицательные значения.
Гиперболический тангенс
Имеет смысл использовать гиперболический тангенс, только тогда, когда ваши значения могут быть и отрицательными, и положительными, так как диапазон функции [-1,1]. Использовать эту функцию только с положительными значениями нецелесообразно так как это значительно ухудшит результаты вашей нейросети.
Тренировочный сет
Тренировочный сет — это последовательность данных, которыми оперирует нейронная сеть. В нашем случае исключающего или (xor) у нас всего 4 разных исхода то есть у нас будет 4 тренировочных сета: 0xor0=0, 0xor1=1, 1xor0=1,1xor1=0.
Итерация
Это своеобразный счетчик, который увеличивается каждый раз, когда нейронная сеть проходит один тренировочный сет. Другими словами, это общее количество тренировочных сетов пройденных нейронной сетью.
Эпоха
При инициализации нейронной сети эта величина устанавливается в 0 и имеет потолок, задаваемый вручную. Чем больше эпоха, тем лучше натренирована сеть и соответственно, ее результат. Эпоха увеличивается каждый раз, когда мы проходим весь набор тренировочных сетов, в нашем случае, 4 сетов или 4 итераций.
Важно не путать итерацию с эпохой и понимать последовательность их инкремента. Сначала n
раз увеличивается итерация, а потом уже эпоха и никак не наоборот. Другими словами, нельзя сначала тренировать нейросеть только на одном сете, потом на другом и тд. Нужно тренировать каждый сет один раз за эпоху. Так, вы сможете избежать ошибок в вычислениях.
Ошибка
Ошибка — это процентная величина, отражающая расхождение между ожидаемым и полученным ответами. Ошибка формируется каждую эпоху и должна идти на спад. Если этого не происходит, значит, вы что-то делаете не так. Ошибку можно вычислить разными путями, но мы рассмотрим лишь три основных способа: Mean Squared Error (далее MSE), Root MSE и Arctan. Здесь нет какого-либо ограничения на использование, как в функции активации, и вы вольны выбрать любой метод, который будет приносить вам наилучший результат. Стоит лишь учитывать, что каждый метод считает ошибки по разному. У Arctan, ошибка, почти всегда, будет больше, так как он работает по принципу: чем больше разница, тем больше ошибка. У Root MSE будет наименьшая ошибка, поэтому, чаще всего, используют MSE, которая сохраняет баланс в вычислении ошибки.
MSE
Root MSE
Arctan
Принцип подсчета ошибки во всех случаях одинаков. За каждый сет, мы считаем ошибку, отняв от идеального ответа, полученный. Далее, либо возводим в квадрат, либо вычисляем квадратный тангенс из этой разности, после чего полученное число делим на количество сетов.
Задача
Теперь, чтобы проверить себя, подсчитайте результат, данной нейронной сети, используя сигмоид, и ее ошибку, используя MSE.
Данные: I1=1, I2=0, w1=0.45, w2=0.78 ,w3=-0.12 ,w4=0.13 ,w5=1.5 ,w6=-2.3.
Решение
h2input = 1*0.45+0*-0.12=0.45
h2output = sigmoid(0.45)=0.61
h3input = 1*0.78+0*0. 2)/1=0.45
Результат — 0.33, ошибка — 45%.
Большое спасибо за внимание! Надеюсь, что данная статья смогла помочь вам в изучении нейронных сетей. В следующей статье, я расскажу о нейронах смещения и о том, как тренировать нейронную сеть, используя метод обратного распространения и градиентного спуска.
Использованные ресурсы:
— Раз
— Два
— Три
Ресурсный центр ICS
Программа обучения
Программа обучения Национальной системы управления инцидентами (NIMS) определяет те курсы, которые имеют решающее значение для обучения персонала, способного выполнять все функции управления чрезвычайными ситуациями. Эта программа устанавливает основную учебную программу NIMS, чтобы обеспечить адекватное обучение персонала аварийных служб и реагирования на инциденты всем концепциям и принципам каждого компонента NIMS.
Нажмите на эту ссылку, чтобы получить доступ к документу программы обучения NIMS.
Нажмите на следующие ссылки, чтобы узнать больше.
- Базовые курсы
- Дополнительные курсы
- Центр экстренной помощи
Базовые курсы
- IS-700 NIMS, введение: Этот независимый учебный курс знакомит с концепцией NIMS. NIMS предоставляет согласованный общенациональный шаблон, позволяющий всем правительственным, частным и неправительственным организациям работать вместе во время бытовых инцидентов.
- ICS-100 Введение в систему управления инцидентами: Этот независимый учебный курс знакомит с ICS и обеспечивает основу для обучения ICS более высокого уровня. В нем описывается история, особенности и принципы, а также организационная структура системы. Этот курс также объясняет взаимосвязь между ICS и NIMS.
Дополнительные курсы
- ICS-200 Базовая система управления инцидентами для первоначального реагирования: Этот независимый учебный курс предназначен для того, чтобы персонал мог эффективно действовать во время инцидента или события в ICS. ICS-200 обеспечивает обучение и ресурсы для персонала, который может занять руководящую должность в ICS.
- IS-800 Национальная система реагирования (NRF), введение: Курс знакомит участников с концепциями и принципами NRF.
- ICS-300 Промежуточный ICS для расширения инцидентов: ICS-300 обеспечивает обучение и ресурсы для персонала, которому требуются расширенные знания и применение ICS. Этот курс расширяет информацию, изложенную в курсах ICS-100 и ICS-200.
- ICS-400 Advanced ICS: Этот курс предоставляет обучение и ресурсы для персонала, которому требуется расширенное применение ICS. Этот курс расширяет информацию, изложенную в ICS-100 до ICS-300.
- Специальное обучение: Эти курсы предназначены для того, чтобы сотрудники аварийно-спасательных служб штата и местного уровня получили четкое представление о обязанностях, ответственности и возможностях командования и сотрудников Генерального штаба. Упражнения, симуляции, обсуждения и итоговый экзамен позволяют участникам обработать и применить свои новые знания. Курсы повышения квалификации включают в себя:
- E/L 950: NIMS ICS Командующий по ликвидации чрезвычайных ситуаций
- E/L 952: Специалист по общественной информации NIMS ICS по всем опасностям
- E / L 954: Специалист по безопасности NIMS ICS по всем опасностям
- E/L 956: Сотрудник по связям со всеми опасностями NIMS ICS
- E / L 958: Начальник отдела специальных операций по работе со всеми опасностями
- E/L 960: Супервайзер отдела/группы по всем опасностям NIMS ICS Должность
- E / L 962: Начальник отдела планирования всех опасностей
- E / L 964: Руководитель подразделения по работе с опасными ситуациями
- E/L 965: Начальник подразделения специальных ресурсов для всех опасностей
- E/L 967: Начальник отдела логистики, работающий в опасных условиях,
- E / L 969: Руководитель подразделения связи для всех опасностей
- E / L 970: Командир подразделения снабжения для всех опасностей
- E / L 971: Руководитель подразделения по работе с опасными позициями
- E/L 973: All-Hazards Специальная финансовая/административная должность. Начальник отдела
- E/L 975: All-Hazards Специальная финансовая/административная должность. Курс командира отряда
Щелкните эту ссылку, чтобы получить доступ к веб-сайту EMI для получения информации о предложениях классов и учебных материалах.
Emergency Operations Center (EOC)
Нажмите на эту ссылку, чтобы получить доступ к веб-сайту EMI для получения информации о предложениях классов и учебных материалах.
Что такое микрообучение: полное руководство для начинающих
Резюме: Когда ваши тренировки слишком сложны для усвоения и вызывают у ваших учеников изжогу, подход размером с укус является верным решением. Прочитайте нашу полную статью, чтобы узнать больше о том, что такое микрообучение и как вы можете использовать его для повышения вовлеченности в обучение и сохранения знаний!
Микрообучение дает большой эффект.
Это более увлекательный, менее трудоемкий и более дешевый аналог обычного электронного обучения. Хотя это не лучшее решение для всех потребностей в обучении, оно удивительно эффективно для корпоративного и коммерческого обучения.
К концу этой статьи вы будете знать, что такое микрообучение, каковы его характеристики и как его использовать в обучении. Начнем с самого начала.
Назад к основам: что такое микрообучение?
Хотя официального определения микрообучения не существует, все обучение, основанное на микрообучении, объединяет одна ключевая характеристика: краткость. Это может быть либо 90 111 небольших учебных единиц, либо краткосрочные учебные мероприятия.
Microtraining предоставляет учащимся короткие блоки контента для изучения в удобное для них время. Контент может принимать различные формы, от текста до полноценного интерактивного мультимедиа, но всегда должен быть коротким.
Вот несколько примеров содержания микрообучения:
- Текст (фразы, короткие абзацы)
- Изображения (фотографии, иллюстрации)
- Видео (короткие)
- Аудио (короткие фрагменты речи или музыки)
- Тесты и викторины
- Игры (например, простые одноэкранные задачи)
На этом этапе важно отметить, что не все приложения для микрообучения поддерживают все эти типы контента. Обратитесь к поставщику микрообучения, чтобы убедиться, что ваши любимые форматы поддерживаются.
Даже несмотря на то, что за последние два года обучение на небольшие кусочки становится все более и более популярным, оно имеет долгую историю, еще до того, как появились компьютеры. Но он действительно взлетел, когда встретился с современным смартфоном. Настолько, что ведущие платформы микрообучения кажутся смесью Twitter и Instagram, но образовательными.
В эпоху напряженного графика и короткой концентрации внимания микрообучение является почти идеальной моделью обучения. И его можно использовать для всех видов тренировок. Несколько примеров микрообучения включают в себя адаптацию сотрудников, обучение комплаенсу и обучение навыкам.
Каковы преимущества микрообучения?
1. Доставить быстрее
Меньше вещей, которые нужно написать, означает более короткие сроки доставки курса. С помощью микрообучения вы можете построить курс с десятками модулей за час. Это позволяет быстрее реагировать на изменение бизнес-целей и новые требования к обучению.
2. Доступнее
Курс микрообучения также намного дешевле в производстве. Это требует меньше ресурсов и требует меньше инструкторов. Вам даже не нужны никакие специальные «инструменты микрообучения» для создания контента; Подойдет обычный редактор контента LMS — хотя, конечно, специализированная платформа на основе микрообучения, такая как TalentLMS, значительно упростит этот процесс.
3. Гибкость
Курсы микрообучения могут охватывать любой предмет, который могут охватывать обычные курсы электронного обучения; только в меру. Вы можете создавать курсы, которые дают общий обзор предмета, или даже создавать курсы для сложных тем.
4. Учащиеся находят это более увлекательным
Микротренинг — самый увлекательный метод обучения. Опыт микрообучения похож на проверку вашего любимого социального приложения на вашем смартфоне по сравнению с ощущением «серьезной учебы» при регулярном обучении.
5. Это способствует сохранению знаний
Согласно исследованиям в области микрообучения, когда вы постоянно что-то изучаете и возвращаетесь к этому, когда уже близки к тому, чтобы забыть об этом, вы запоминаете это намного лучше. Такое повторное изучение хорошо сочетается с модулями микрообучения, поскольку они небольшие, автономные и к ним легко вернуться.
6. Это дает учащимся больше свободы
Регулярное онлайн-обучение, в котором используются текстовые курсы, не идеально подходит для изучения в короткие сроки. С другой стороны, микрообучение позволяет вашим учащимся получать удовольствие от случайного обучения, когда у них есть свободное время. Кроме того, поскольку курсы микрообучения небольшие, их также легко загрузить и взять с собой в автономном режиме.
Каковы ограничения микрообучения?
Мы не можем просто назвать микрообучение лучше или хуже обычного электронного обучения. Все зависит от тематики. А вообще:
1.
Не подходит для сложных концепцийЕдиницы микрообучения отлично подходят для предоставления простой информации, но не обязательно лучше всего подходят для сложных концепций. Это все еще возможно, но потребует больше усилий. Например, вам нужно разбить концепцию на простые части. Тем не менее, курс размером с укус — отличный способ дать представление о предмете на высоком уровне.
2. Не подходит для углубленного обучения
Если у вас есть предмет, требующий углубленного изучения, микрообучение может быть не лучшим подходом. Например, вы можете использовать его для изучения разговорного немецкого, но не для изучения немецкой литературы. Тем не менее, во многих случаях, особенно в бизнес-тренингах, краткий автономный курс — это именно то, что необходимо.
Лучшие практики микрообучения
По сравнению с традиционными курсами, курс микрообучения легче начать создавать и быстрее завершить. Конечно, вам все равно придется следовать нескольким рекомендациям, чтобы сделать это правильно:
1.
Проверьте, подходит ли он для вашего варианта использованияЕсли ваш предмет сложен, требует углубленного изучения или требует личного обучения, микрообучение, вероятно, не для вас. Тем не менее, это все еще может быть хорошим методом дополнительного обучения.
2. Снимите жир
Не просто вставляйте куски вашего обычного материала для электронного обучения в блок микрообучения и заканчивайте работу. Напишите короткий и сфокусированный контент, который отражает суть того, чему вы пытаетесь научить.
3. Используйте мультимедиа, чтобы оживить ситуацию
Один только текст утомит ваших учеников. Добавьте соответствующие мультимедийные ресурсы, такие как видео, фотографии, иллюстрации и анимацию, чтобы поддерживать их интерес. Тщательно выбирайте мультимедиа. Это должно дополнять ваш предмет, а не просто делать его «красивым».
4. Включите геймификацию, чтобы повысить вовлеченность
Если ваша платформа микрообучения поддерживает геймификацию, добавьте в свои курсы несколько элементов.