Pull to refresh
  • by relevance
  • by date
  • by rating

Нейросети и глубокое обучение, глава 3, ч.1: улучшение способа обучения нейросетей

PythonProgrammingArtificial Intelligence
Translation

Когда человек учится играть в гольф, большую часть времени он обычно проводит за постановкой базового удара. К другим ударам он подходит потом, постепенно, изучая те или иные хитрости, основываясь на базовом ударе и развивая его. Сходным образом мы пока что фокусировались на понимании алгоритма обратного распространения. Это наш «базовый удар», основа для обучения для большей части работы с нейросетями (НС). В этой главе я расскажу о наборе техник, которые можно использовать для улучшения нашей простейшей реализации обратного распространения, и улучшить способ обучения НС.

Среди техник, которым мы научимся в этой главе: лучший вариант на роль функции стоимости, а именно функция стоимости с перекрёстной энтропией; четыре т.н. метода регуляризации (регуляризации L1 и L2, исключение нейронов [dropout], искусственное расширение обучающих данных), улучшающих обобщаемость наших НС за пределы обучающих данных; лучший метод инициализации весов сети; набор эвристических методов, помогающих выбирать хорошие гиперпараметры для сети. Я также рассмотрю и несколько других техник, чуть более поверхностно. Эти обсуждения по большей части не зависят друг от друга, поэтому их можно по желанию перепрыгивать. Мы также реализуем множество технологий в рабочем коде и используем их для улучшения результатов, полученных для задачи классификации рукописных цифр, изученной в главе 1.
Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Views12.3K
Comments 2

Нейросети и глубокое обучение, глава 3, ч.2: почему регуляризация помогает уменьшать переобучение?

PythonProgrammingMachine learningArtificial Intelligence
Translation

Эмпирически мы увидели, что регуляризация помогает уменьшать переобучение. Это вдохновляет – но, к сожалению, не очевидно, почему регуляризация помогает. Обычно люди объясняют это как-то так: в каком-то смысле, менее крупные веса имеют меньшую сложность, что обеспечивает более простое и действенное объяснение данных, поэтому им надо отдавать предпочтение. Однако это слишком краткое объяснение, а некоторые его части могут показаться сомнительными или загадочными. Давайте-ка развернём эту историю и изучим её критическим взглядом. Для этого предположим, что у нас есть простой набор данных, для которого мы хотим создать модель:

Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Views10.9K
Comments 4

Нейросети и глубокое обучение, глава 3, ч.3: как выбрать гиперпараметры нейросети?

Machine learningArtificial Intelligence
Translation

До сих пор я не объяснял, как я выбираю значения гиперпараметров – скорость обучения η, параметр регуляризации λ, и так далее. Я просто выдавал неплохо работающие значения. На практике же, когда вы используете нейросеть для атаки на проблему, может быть сложно найти хорошие гиперпараметры. Представьте, к примеру, что нам только что рассказали о задаче MNIST, и мы начали работать над ней, ничего не зная по поводу величин подходящих гиперпараметров. Допустим, что нам случайно повезло, и в первых экспериментах мы выбрали многие гиперпараметры так, как уже делали в этой главе: 30 скрытых нейронов, размер мини-пакета 10, обучение за 30 эпох и использование перекрёстной энтропии. Однако мы выбрали скорость обучения η=10,0, и параметр регуляризации λ=1000,0. И вот, что я увидел при таком прогоне:
Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Views6.7K
Comments 2

Нейросети и глубокое обучение, глава 4: визуальное доказательство того, что нейросети способны вычислить любую функцию

MathematicsArtificial Intelligence
Translation
В данной главе я даю простое и по большей части визуальное объяснение теоремы универсальности. Чтобы следить за материалом этой главы, не обязательно читать предыдущие. Он структурирован в виде самостоятельного эссе. Если у вас есть самое базовое представление о НС, вы должны суметь понять объяснения.


Один из наиболее потрясающих фактов, связанных с нейросетями, заключается в том, что они могут вычислить вообще любую функцию. То есть, допустим, некто даёт вам какую-то сложную и извилистую функцию f(x):


Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Views16.5K
Comments 27

Нейросети и глубокое обучение, глава 5: почему глубокие нейросети так сложно обучать?

Machine learningArtificial Intelligence
Translation

Представьте, что вы – инженер, и вас попросили разработать компьютер с нуля. Как-то раз вы сидите в офисе, изо всех сил проектируете логические контуры, распределяете вентили AND, OR, и так далее,- и вдруг входит ваш босс и сообщает вам плохие новости. Клиент только что решил добавить неожиданное требование к проекту: схема работы всего компьютера должна иметь не более двух слоёв:



Вы поражены, и говорите боссу: «Да клиент спятил!»

Босс отвечает: «Я тоже так думаю. Но клиент должен получить то, что хочет».
Читать дальше →
Total votes 29: ↑26 and ↓3 +23
Views13.7K
Comments 2

Нейросети и глубокое обучение: онлайн-учебник, глава 6, ч.1: глубокое обучение

Machine learningArtificial Intelligence
Translation

В прошлой главе мы узнали, что глубокие нейронные сети (ГНС) часто тяжелее обучать, чем неглубокие. И это плохо, поскольку у нас есть все основания полагать, что если бы мы могли обучить ГНС, они бы гораздо лучше справлялись с задачами. Но хотя новости из предыдущей главы и разочаровывают, нас это не остановит. В этой главе мы выработаем техники, которые сможем использовать для обучения глубоких сетей и применения их на практике. Мы также посмотрим на ситуацию шире, кратко познакомимся с недавним прогрессом в использовании ГНС для распознавания изображений, речи и для других применений. А также поверхностно рассмотрим, какое будущее может ждать нейросети и ИИ.

Это будет длинная глава, поэтому давайте немного пройдёмся по оглавлению. Её разделы не сильно связаны между собой, поэтому, если у вас есть некие базовые понятия о нейросетях, вы можете начинать с того раздела, который вас больше интересует.

Основная часть главы – введение в один из наиболее популярных типов глубоких сетей: глубокие свёрточные сети (ГСС). Мы поработаем с подробным примером использования свёрточной сети, с кодом и прочим, для решения задачи классификации рукописных цифр из набора данных MNIST:


Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views11.9K
Comments 1

Нейросети и глубокое обучение: онлайн-учебник, глава 6, ч.2: недавний прогресс в распознавании изображений

Machine learningArtificial Intelligence
Translation

В 1998 году, когда появилась база MNIST, требовались недели для обучения самых передовых компьютеров, достигавших гораздо худших результатов, чем сегодняшние, на получение которых при помощи GPU уходит менее часа. Поэтому MNIST уже не является задачей, раздвигающей границы возможностей технологий; скорость обучения говорит о том, что эта задача хорошо подходит для изучения данной технологии. Тем временем, исследования идут дальше, и в современной работе изучаются гораздо более сложные для решения задачи. В данном разделе я кратко опишу некоторые примеры текущей работы, связанной с распознаванием изображений при помощи нейросетей.

Этот раздел отличается от остальной части книги. В книге я фокусировался на предположительно долгоживущих идеях – обратном распространении, регуляризации, свёрточных сетях. Я пытался избегать результатов, считающихся модными на момент написания, чья долговременная ценность представлялась сомнительной. В науке подобные результаты чаще всего оказываются однодневками, быстро исчезают и не оказывают долговременного влияния. Учитывая это, скептик сказал бы: «Разумеется, недавний прогресс в распознавании изображений можно считать примером такой однодневки? Через два-три года всё поменяется. Так что эти результаты наверняка будут интересны небольшому числу специалистов, конкурирующих на переднем плане? К чему вообще их обсуждать?»
Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Views5.1K
Comments 4

Нейросети и глубокое обучение: онлайн-учебник, послесловие: существует ли простой алгоритм для создания интеллекта?

Machine learningArtificial Intelligence
Translation

В данной книге мы фокусировались на основных деталях устройства нейросетей: как они работают, как их можно использовать в задачах распознавания последовательностей. Этот материал возможно непосредственно применять на практике. Но, конечно, одна из причин интереса к НС – надежда, что когда-нибудь они смогут выйти за пределы простого распознавания последовательностей. Возможно, их, или какие-то другие подходы на основе цифровых компьютеров, в итоге можно будет применять для создания думающих машин, способных поспорить с человеческим интеллектом или превзойти его? Эта идея выходит далеко за пределы обсуждаемого в книге материала – или ноу-хау любого человека на планете. Но порассуждать на эту тему всегда интересно.

Было очень много споров по поводу того, могут ли компьютеры в принципе достичь уровня человеческого интеллекта. Я не буду рассматривать этот вопрос. Несмотря на дебаты, я считаю, что не существует серьёзных сомнений в возможности создания разумного компьютера – хотя эта задача может оказаться чрезвычайно сложной, и, возможно, выйти далеко за пределы существующих технологий – а текущие критики однажды окажутся в положении виталистов прошлого.
Читать дальше →
Total votes 17: ↑14 and ↓3 +11
Views6.3K
Comments 11

Трёхпроходные протоколы

Information SecurityCryptography
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На Хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам.

Предыдущие темы:


Если между Алисой и Бобом существует канал связи, недоступный для модификации злоумышленником (то есть когда применима модель только пассивного криптоаналитика), то даже без предварительного обмена секретными ключами или другой информацией можно воспользоваться идеями, использованными ранее в криптографии на открытых ключах. После описания RSA в 1978 году, в 1980 Ади Шамир предложил использовать криптосистемы, основанные на коммутативных операциях, для передачи информации без предварительного обмена секретными ключами. Если предположить, что передаваемой информацией является выработанный одной из сторон секретный сеансовый ключ, то в общем виде мы получаем следующий трёхпроходной протокол.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Views3.7K
Comments 1

«Криптосистемы-протоколы»: Диффи—Хеллмана, Эль-Гамаля, MTI/A(0), STS

Information SecurityCryptography
Предисловие
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На Хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам. Предыдущие разделы главы «Криптографически протоколы»: 1, 2, 3

Как и создатели трёхпроходных протоколов из предыдущего раздела, авторы следующих алгоритмов считали их не просто математическими конструкциями, обеспечивающие некоторую элементарную операцию (например, шифрование с открытым ключом), но пытались вокруг одной-двух формул построить законченную систему распространения ключей. Некоторые из этих конструкций, преобразовавшись, используются до настоящего времени (например, протокол Диффи-Хеллмана), некоторые — остались только в истории криптографии и защиты информации.

Позже в 1990-х годах будут разделены математические асимметричные примитивы (шифрование и электронная подпись) и протоколы, эти примитивы использующие, что будет продемонстрировано в разделе про асимметричные протоколы.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Views9.8K
Comments 1

Схемы распределения ключей с доверенным центром: схемы Жиро и Блома

Information SecurityCryptography
Предисловие
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На Хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам. Предыдущие разделы главы «Криптографически протоколы»: 1, 2, 3, 4

Схемы распределения ключей с доверенным центром состоят из трёх этапов.

  1. На первом этапе доверенный центр создаёт некоторый секрет, известный только ему. Это может быть некоторая секретная матрица с особыми свойствами, как в схеме Блома, или пара из закрытого и открытого ключей, как в схеме Жиро.
  2. Для каждого нового легального участника сети доверенный центр, используя свою секретную информацию, вырабатывает некоторый отпечаток или сертификат, который позволяет новому участнику вырабатывать сеансовые ключи с другими легальными участниками.
  3. Наконец, на третьем этапе, когда начинается протокол общения двух легальных участников, они предъявляют друг-другу идентификаторы и/или дополнительную информацию от доверенного центра. Используя её, без дополнительного обращения к центру, они могут сгенерировать секретный сеансовый ключ для общения между собой.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views1.9K
Comments 0

Асимметричные криптографические протоколы распределения ключей: Деннинга—Сакко, DASS, Ву-Лама

Information SecurityCryptography
Предисловие
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На Хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам. Предыдущие разделы главы «Криптографически протоколы»: 1, 2, 3, 4, 5; следующий по порядку: 7.

Асимметричные протоколы, или же протоколы, основанные на криптосистемах с открытыми ключами, позволяют ослабить требования к предварительному этапу протоколов. Вместо общего секретного ключа, который должны иметь две стороны (либо каждая из сторон и доверенный центр), в рассматриваемых ниже протоколах стороны должны предварительно обменяться открытыми ключами (между собой либо с доверенным центром). Такой предварительный обмен может проходить по открытому каналу связи, в предположении, что криптоаналитик не может повлиять на содержимое канала связи на данном этапе.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views2.9K
Comments 0

Учебник по симулятору сети ns-3. Главы 1,2

Open sourceSystem Analysis and DesignNetwork technologies
Translation
Tutorial

Данная статья открывает серию публикаций с переводом учебника "ns-3 Tutorial Release ns-3.29" по симулятору сетей ns-3.



Этот документ является переводом оригинального документа на английском, который написан в reStructuredText для Sphinx и хранится в директории doc/tutorial исходного кода ns-3.


1 Предисловие
1.1 О ns-3
1.2 Для пользователей ns-2
1.3 Участие в проекте
1.4 Организация руководства
2 Источники информации
2.1 Сеть
2.2 Git
2.3 WAF
2.4 Среда разработки
2.5 Программирование сокетов
глава 3
глава 4
глава 5
глава 6
глава 7
главы 8, 9


Скачать перевод одним pdf-файлом


Первичная документация для проекта ns-3 доступна в пяти формах:


Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views6.9K
Comments 2

Учебник по симулятору сети ns-3. Глава 3

Open sourceSystem Analysis and Design*nixNetwork technologies
Translation
Tutorial


главы 1,2


3 Приступая к работе
3.1 Обзор
3.2 Предварительные условия
3.2.1 Загрузка релиза ns-3 в виде архива исходников
3.3 Скачивание ns-3 с помощью Git
3.3.1 Загрузка ns-3 с помощью Bake
3.4 Сборка ns-3
3.4.1 Сборка с помощью build.py
3.4.2 Сборка с Bake
3.4.3 Сборка с Waf
3.5 Тестирование ns-3
3.6 Запуск скрипта
3.6.1 Аргументы командной строки
3.6.2 Отладка
3.6.3 Рабочая директория


Глава 3


Приступая к работе


Эта глава направлена на то, чтобы подготовить читателя к работе, начиная с компьютера, на который, возможно, никогда не устанавливался ns‑3. Изложение охватывает поддерживаемые платформы, предварительные условия, способы получения ns‑3, способы сборки ns‑3 и способы проверки вашей сборки и запуск простых программ.

Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views2.5K
Comments 0

Учебник по симулятору сети ns-3. Глава 4

Open sourceSystem Analysis and DesignC++*nixNetwork technologies
Translation
Tutorial


главы 1,2
глава 3


4 Обзор концепции
4.1 Ключевые абстракции
4.1.1 Node (Узел)
4.1.2 Application (Приложение)
4.1.3 Channel (Канал)
4.1.4 Net Device (Сетевое устройство)
4.1.5 Топологические помощники
4.2 Первый скрипт ns-3
4.2.1 Boilerplate код
4.2.2 Подключаемые модули
4.2.3 Пространство имен ns3
4.2.4 Журналирование
4.2.5 Главная функция
4.2.6 Использование топологических помощников
4.2.7 Использование Application
4.2.8 Симулятор
4.2.9 Сборка вашего сценария
4.3 ns-3 Исходный код


Глава 4


Обзор концепции


Первое, что нам нужно сделать перед тем, как начать изучать или писать код ns‑3 — это объяснить несколько основных понятий и абстракций в системе. Многое из этого, для некоторых, может показаться очевидным, но мы рекомендуем уделить время для чтения этого раздела, чтобы убедиться, что вы начинаете на прочной основе.

Читать дальше →
Rating 0
Views2.1K
Comments 0

Новый лабник «Цифровой синтез» продолжает книгу Харрисов и помогает сделать видеоигру на FPGA

High performanceConcurrent computingFPGAProgramming microcontrollersElectronics for beginners


Новый лабник «Цифровой синтез» продолжает традиции учебника Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», скачивания которого завалили британский сайт. Лабник позволяет потрогать руками всю теорию из Харрис & Харрис на плате FPGA, от мигания лампочек до процессора. В лабнике также разобрана концепция конвейерной обработки, без которой вы не пройдете интервью на работу проектировщиком ни в одну микроэлектронную компанию. В конце показан путь от FPGA до ASIC, массовых микросхем, которые стоят в айфонах, теслах и ИИ-акселераторах.

В книжке есть интервью команды из Питера, которую Intel привез в свою штаб-квартиру в Silicon Valley за их победу на конкурсе Innovate FPGA. Книжку «Цифровой синтез: практический курс» поддержала ведущая компания в автоматизации пректирования микросхем Cadence Design Systems (на фото выше сибирячка Наташа стоит с FPGA платой перед штаб-квартирой Cadence в Silicon Valley — в посте будет ее видео).

Лабник делался под эгидой Высшей Школы Экономики / МИЭМ (Александр Романов, Вероника Прохорова и Игорь Агамирзян), при этом разные главы в нем писали преподаватели Московского, Киевского и Самарского университетов, Питерского ИТМО, Черниговского политеха и Университета Калифорнии Санта-Круз (Чарльз Данчек, вечернее отделение в Silicon Valley). В создании учебника приняли участие инженеры российских компании IVA Technologies (Станислав Жельнио, аппаратный ускоритель ИИ + образовательный проект schoolMIPS) и ФГУП НПЦАП
(отделение Роскосмоса), американских компаний MIPS, Juniper Networks и AMD. Издало учебник ДМК-Пресс.
Читать дальше →
Total votes 29: ↑28 and ↓1 +27
Views11.1K
Comments 33