Про книгу «Глубокое обучение. Погружение в мир нейронных сетей»

Некоторое время назад мне захотелось получше разобраться с тем, как устроены современные нейронные сети. До этого мои знания о них были на уровне 60-70-х годов прошлого века. Я имел какое-то представление о многослойных перцептронах, функциях активации в виде сигмоида, алгоритме обратного распространения ошибки и, кажется, все. При этом некоторые книги, которые мне довелось полистать, тяготели к двум крайностям. Либо это были чисто математические работы для математиков, либо книги в стиле «берем библиотеку X, импортируем функцию Y, все работает». Хотелось почитать книгу, после которой можно было бы более осмысленно использовать какую-нибудь библиотеку вроде TensorFlow, понимая, каким образом построить архитектуру сети. В этот момент мне попалась книга трех авторов: С. Николенко, А. Кадурина и Е. Архангельской под названием «Глубокое обучение. Погружение в мир нейронных сетей». Полистав ее, я увидел, что формулы в ней присутствуют, но кроме формул есть еще много текста и картинок со схемами, и даже код встречается. В общем, решил я почитать эту книгу.

Читать далее ‘Про книгу «Глубокое обучение. Погружение в мир нейронных сетей»’ »

Коротко о прочитанных недавно книгах

Дочитал на днях две книжки, которые читал параллельно.

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

Про книгу «Глубокое обучение» надеюсь как-нибудь напишу отдельный пост. Если коротко, это скорее теоретическая книга про разные архитектуры нейронных сетей: обычные многослойные, сверточные, рекуррентные, порождающие. Описываются различные методы их обучения. При этом в книге достаточно много математики, которую иногда при поверхностном чтении можно пропустить, авторы все равно объяснят идею каждой архитектуры сети. В книге есть несколько примеров кода с использованием TensorFlow и Keras, но это не учебник по этим библиотекам. Идеи описаны достаточно тяжелые, но при этом язык написания книги — замечательный с добавлением шуток и цитат из художественных или не очень книг, которые можно прицепить к рассматриваемой теме. Книга писалась в 2017 году, еще до появления ChatGPT, и это надо учитывать. Даже сами авторы пишут, что по нейронным сетям появляется огромное количество научных публикаций, предлагающие новые подходы к построению различных архитектур сетей. В конце книги приводятся ссылки на чуть меньше 600 публикаций.

Книга Алексея Семихатова «Сто лет недосказанности»

Алексей Семихатов — известный популяризатор (надеюсь, за это слово сейчас по морде не бьют) физики, особенно квантовой физики. Его интервью и лекции мне периодически подсовывает Youtube на различных каналах, и я их с огромным удовольствием смотрю (и недавно Семихатов завел свой канал). Это надо уметь — с такой иронией объяснять физику, причем квантовую физику. Поэтому, когда я узнал, что у него вышла новая книга (каюсь, предыдущую его книгу я не читал), то сразу побежал ее заказывать. И вот недавно я ее прочитал. Это оказалось очень необычное описание квантовой физики, но чуть более серьезное, чем обычно он рассказывает в многочисленных интервью.

В этой книге Алексей Семихатов пытается объяснить идеи квантовой физики без формул на пальцах, кошках и других подручных предметах, причем не ограничиваясь темами, о которых говорят на уроках в школе или первом курсе института, а углубляясь в более тонкие следствия из различных теорий.

Читать далее ‘Книга Алексея Семихатова «Сто лет недосказанности»’ »

Как я писал книгу про Python

Полтора года назад я начал писать книгу про Python. Когда-то я писал посты о том, как продвигаются дела с этой книгой. Потом долгое время в блоге я эту тему как-то игнорировал, хотя в Телеграме про нее писал периодически и процесс написания продолжался. И вот, наконец, книга под названием «Python для инженерных задач» вышла. Сразу оставлю ссылку на сайт издательства, где можно прочитать оглавление и заказать ее. Книга получилась большая, больше, чем предполагалась изначально. На сайте написано, что она состоит из 416 страниц, но в реальности она содержит около 670 страниц.

Представитель издательства уже написал пост об этой книга на Хабре, а здесь я напишу о работе над этой книгой со своей стороны.

Читать далее ‘Как я писал книгу про Python’ »

Книга Александра Богачева «Графики, которые убеждают всех»

На работе мне часто приходится иметь дело с графиками, поэтому когда я увидел книгу Александра Богачева «Графики, которые убеждают всех. Руководство по визуализации данных», я не смог пройти мимо нее. Книжка оказалась замечательная. Как следует из подзаголовка, книга посвящена визуализации данных в разных ее проявлениях.

Читать далее ‘Книга Александра Богачева «Графики, которые убеждают всех»’ »

Книга Рустама Агамалиева «Эффективное чтение»

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

За Рустамом Агамалиевым и его деятельностью в сети я наблюдаю с большим интересом уже давно — почитываю его канал Цеттелькастен и Персональные Базы Знаний в Телеграме и временами посматриваю его канал на Ютубе, где Рустам рассказывает о ведении заметок. Поэтому, когда я узнал, что он написал книгу «Эффективное чтение. Техники «нечтения» для профессионального роста», то сразу ее купил. Правда, прочитал я ее не сразу, и еще более не сразу пишу этот пост.

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

Читать далее ‘Книга Рустама Агамалиева «Эффективное чтение»’ »

Про книгу Стефани Стимак «Дизайн для разработчиков»

Захотелось мне обновить свои знания по фронтенд-разработке, которые у меня застряли на уровне CSS времен Internet Explorer 6 9, а также принципов веб-дизайна примерно тех же годов. Начать решил с книги Стефани Стимак «Дизайн для разработчиков». Судя по названию, это должна была быть именно та книга, которая мне нужна. Но, как оказалось, ожидал я от нее слишком многого, и в первую очередь в этой книге не хватило глубины материала.

Читать далее ‘Про книгу Стефани Стимак «Дизайн для разработчиков»’ »

Начал писать книжку про Python

А расскажу-ка я вам об одной авантюре, в которую недавно ввязался. Ну, может это и не совсем авантюра, но по крайней мере дело, которое требует к себе особого внимания. Если совсем коротко, то несколько месяцев назад я начал писать книгу про Python.

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

Ориентируюсь на наших студентов, которые учатся не на программистов, но с расчетом на то, что Python они будут использовать для инженерных задач и обработки данных. Поэтому в книге не будет ничего про веб-программирование, глубоко копать ООП тоже не будем (никакого множественного наследования и метаклассов), но при этом надо будет поподробнее рассказать про библиотеки Numpy, SciPy, Matplotlib и Pandas. При этом подразумевается, что студенты уже имеют представление о том, что такое программирование, переменные и циклы, и, возможно, даже поверхностно знают C.

Я думаю, что в телеграм-канале я буду периодически рассказывать, как продвигаются дела.

Книга Алекса Сюя «System Design»

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

На самом деле от формата интервью в книге только постановка задачи, где кандидат в диалоге с интервьюером обсуждают подробности будущей системы, кандидат выпытывает у интервьюера, какая ожидается нагрузка, какой объем данных предоставляется пользователю, после чего делает расчеты требуемого объема хранения данных и сколько ожидается запросов в секунду. Потом эти цифры нигде не используются, интервьюер уходит со сцены, а кандидат начинает свой монолог о том, как он видит структуру системы.

Кандидату в этой книге предстоит построить такие высоконагруженные системы, как поискового робота, систему сокращения URL-адресов, систему для отправки уведомлений пользователям (push-уведомления, SMS-уведомления, через почту и т.п.), ленту новостей блога, чаты, систему автозаполнения поисковых запросов, а в завершение ему предлагается нарисовать архитектуру будущих конкурентов для Youtube и Google Drive. Есть еще несколько глав, где требуется спроектировать один из компонентов таких систем — хранилище типа «ключ-значение», ограничитель трафика и распределенный генератор уникальных идентификаторов.

Читать далее ‘Книга Алекса Сюя «System Design»’ »

Книга Александра Пиперски «Конструирование языков»

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

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

Автор этой книги — достаточно известный в определенных кругах популяризатор лингвистики Александр Пиперски, а его книга «Конструирование языков. От эсперанто до дотракийского» была издана уже в далеком 2017 году, а в 2020 вышло второе издание. Именно его я и читал. По сути в этой книге приводится краткий обзор искусственных языков, созданных для различных целей, как для художественных произведений, так и для реального использования. Мне особенно понравилась подача материала про некоторые языки, когда в начале главы приводятся несколько фраз на описываемом языке с переводом, а потом на основе этих данных читателю предлагается найти логику в построении этих выражений и выполнить задания по переводу других приведенных предложений. Затем в тексте главы автор вместе с читателем распутывает этот ребус, выявляя структуру построения фраз на описываемом языке.

Читать далее ‘Книга Александра Пиперски «Конструирование языков»’ »