Как стать автором
Обновить
11
0
Виктор @RadicalDreamer

Программист

Отправить сообщение

Нейронные сети для начинающих. Часть 1

Время на прочтение7 мин
Количество просмотров1.6M
image

Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

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

Разработка собственного фреймворка и профессиональный рост JS-программиста

Время на прочтение6 мин
Количество просмотров30K
Вы когда-нибудь задавались вопросом о том, как работают фреймворки? Автор материала, перевод которого мы сегодня публикуем, говорит, что когда он, много лет назад, после изучения jQuery, наткнулся на Angular.js, то, что он увидел, показалось ему очень сложным и непонятным. Потом появился Vue.js, и разбираясь с этим фреймворком, он вдохновился на написание собственной системы двусторонней привязки данных. Подобные эксперименты способствуют профессиональному росту программиста. Эта статья предназначена для тех, кто хочет расширить собственные знания в сфере технологий, на которых основаны современные JS-фреймворки. В частности, речь здесь пойдёт о том, как написать ядро собственного фреймворка, поддерживающего пользовательские атрибуты HTML-элементов, реактивность и двустороннюю привязку данных.

image
Читать дальше →

Курс о Deep Learning на пальцах

Время на прочтение2 мин
Количество просмотров175K
Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


Читать дальше →

Жизнь внутри черной дыры

Время на прочтение10 мин
Количество просмотров121K
Знаю, что здесь это якобы не приветствуется, но делаю кросс-пост отсюда по прямой просьбе автора — Горькавого Николая Николаевича. Есть некоторый шанс, что их идея перевернёт современную науку. И лучше прочитать о ней в оригинале, чем в пересказе рен-тв или ленты.ру.

image

Для тех, кто не следил за темой. Рассмотрим две вращающихся друг вокруг друга чёрных дыры, допустим, массами 15 и 20 единиц (масс Солнца). Рано или поздно они сольются в одну черную дыру, но её масса будет не 35 единиц, а, скажем, всего 30. Остальные 5 улетят в виде гравитационных волн. Именно эту энергию улавливает гравитационный телескоп LIGO.

Суть идеи Горькавого и Василькова в следующем. Допустим, вы наблюдатель, сидите в своём кресле и чувствуете притяжение 35 единиц массы делить на квадрат расстояния. И тут бац — буквально за секунду их масса уменьшается до 30 единиц. Для вас, в силу принципа относительности, это будет неотличимо от ситуации, когда вас отбросило в обратном направлении с силой в 5 единиц, делить на квадрат расстояния. То есть, неотличимо от антигравитации.

Читать дальше →

Слияние нейтронных звёзд поставило крест на альтернативах тёмной материи и тёмной энергии

Время на прочтение6 мин
Количество просмотров60K

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

Спросите астрофизика о величайшей загадке Вселенной на сегодня – и два наиболее частых ответа будут «тёмная материя» и «тёмная энергия». То, из чего состоит всё на нашей Земле, атомы, которые в свою очередь состоят из фундаментальных частиц, составляют лишь 5% бюджета космической энергии. И либо 95% энергии Вселенной содержится в двух этих формах, в форме тёмной материи и тёмной энергии, которые по сию пору не наблюдались напрямую, либо с нашим представлением о Вселенной что-то кардинально не так. Альтернативы этим теориям исследовали достаточно долго, и различные их варианты проводили к немного различным физическим последствиям. После того, как мы впервые пронаблюдали слияние нейтронных звёзд и приняли сигналы в виде гравитационных волн и света довольно широкого спектра, огромная часть этих альтернатив была отвергнута. Тёмная материя и тёмная энергия выдержали проверку экспериментом.
Читать дальше →

Как Эйнштейн однажды потерялся, чуть не потеряв и общую теорию относительности

Время на прочтение4 мин
Количество просмотров19K

К 1913 году Альберт Эйнштейн почти закончил общую теорию относительности. Но одна простая ошибка привела к тому, что он два года мучительно пересматривал свою теорию. И сегодня математики всё ещё сражаются с теми трудностями, что встали у него на пути.




Альберт Эйнштейн выпустил свою общую теорию относительности в конце 1915 года. А должен был бы закончить её на два года раньше. Когда исследователи изучали его записи того периода, они увидели практически законченные уравнения, в которых не хватало лишь парочки деталей. «Это должна была быть окончательная теория», — сказал Джон Нортон, эксперт по Эйнштейну и историк науки из Питтсбургского университета.

Но Эйнштейн в последний момент допустил критическую ошибку, отправившую его на путь сомнений и открытий – такой сложный, что тот едва не стоил ему его величайшего научного достижения. Последствия его решения продолжают отзываться в математике и физике сегодняшнего дня.
Читать дальше →

О сортировке контента на основе оценок пользователей

Время на прочтение4 мин
Количество просмотров17K
Написать этот пост меня привлекла эта статья. Многие ее помнят по вот этой картинке.
image
Статья затрагивает правильную тему, однако с точки зрения математики и здравого смысла она в корне не верна.
Читать дальше →

Как правильно сортировать контент на основе оценок пользователей

Время на прочтение5 мин
Количество просмотров92K


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


Вы занимаетесь веб программированием. У вас есть пользователи, которые оценивают контент на вашем сайте. Вы хотите разместить высоко оцененный контент наверху, а низко оцененный — внизу. Для этого на основе пользовательских оценок вам нужно вычислить некий «рейтинг».

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

Читать дальше →

Как я осилил английский

Время на прочтение13 мин
Количество просмотров350K
Всем привет. Я – айтишник «за 30», и я люблю английский язык. Так получилось, что на протяжении многих лет английский никак не хотел полюбить меня. Перед вами живой пример человека с «плохой памятью», «неспособностью к языкам», богатейшим опытом неудачного изучения английского как на курсах, так и самостоятельно, упущенными из-за незнания языка шансами и возникшими на этой почве комплексами. Все, что можно было сделать в изучении иностранного языка плохо, я попытался сделать еще хуже. Не смотря на все это, перед вами история с хэппи эндом, которая, верю, поможет кому-то избежать глупых ошибок, сэкономить время, избавится от иллюзий и предрассудков по поводу изучения нового языка с около нулевого уровня.
Читать дальше →

Downclocking оперативной памяти на MacBook

Время на прочтение7 мин
Количество просмотров41K
Хочу поделиться своим опытом апгрейда своего MacBook6,1 A1342 (увеличение памяти до 8Гб, установка SSD) и решении ряда проблем связанных с установкой системы на новый диск и борьба с глюками несовместимости RAM.

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

Где и как изучать машинное обучение?

Время на прочтение2 мин
Количество просмотров76K

Всем привет!


Ни для кого не секрет, что интерес к машинному обучению и искусственному интеллекту растет в лучшем случае по экспоненте. Тем временем мой Яндекс Диск превратился в огромную свалку пейперс, а закладки в Google Chrome превратились в список, длина которого стремится к бесконечности с каждым днем. Таким образом, дабы упростить жизнь себе и вам, решил структурировать информацию и дать множество ссылок на интересные ресурсы, которые изучал я и которые рекомендую изучать вам, если вы только вначале пути (буду пополнять список постоянно).

Путь для развития новичка я вижу примерно так:

Untitled_presentation
Читать дальше →

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Время на прочтение9 мин
Количество просмотров264K

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL. Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК. Зависимость от терминала и Linux окружения в моей работе практически сразу привели меня к вопросу: или ставить виртуалку или попробовать WSL. Я выбрал второе, и остался вполне доволен.


Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.


Читать дальше →

Руководство по промисам для тех, кто хочет в них разобраться

Время на прочтение9 мин
Количество просмотров36K
Лес чуден, тёмен — глянь в глубину.
Но прежде я все долги верну…
И много миль, пока я усну,
Так много миль, пока я усну...

Роберт Фрост

image

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

Материал, перевод которого мы сегодня публикуем, посвящён промисам и их практическому использованию. Он рассчитан на начинающих разработчиков, которым хочется разобраться с промисами.
Читать дальше →

Нейросетевой синтез речи своими руками

Время на прочтение12 мин
Количество просмотров97K
Синтез речи на сегодняшний день применяется в самых разных областях. Это и голосовые ассистенты, и IVR-системы, и умные дома, и еще много чего. Сама по себе задача, на мой вкус, очень наглядная и понятная: написанный текст должен произноситься так, как это бы сделал человек.

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



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

Коротко о Shadowsocks, или OpenVPN не нужен (в каждом доме)

Время на прочтение6 мин
Количество просмотров307K
В наши дни, когда всякие нехорошие элементы так и норовят влезть в ваш трафик и как-то там напакостить, стало модным шифрование трафика. Начинание это благое и полезное, вот только делают его зачастую избыточно. Если шифрование трафика до доверенного сервера, типа своего VPS, — ваша единственная цель, то OpenVPN для такой цели слишком наворочен. Его долго настраивать, легко обнаружить, а главное — есть подводные камни, не зная которых можно получить такую ситуацию, что VPN стоит, а трафик идёт в обход. Всё это потому, что OpenVPN задумывался больше как средство доступа к маленькой сети через Интернет, а не для доступа ко всему Интернету.
Читать дальше →

Создаем точку доступа Wi-Fi под Linux из USB модема

Время на прочтение7 мин
Количество просмотров62K
image

Все началось, когда я заменил материнскую плату в своем домашнем компьютере. В старой плате был встроенный USB Wi-Fi адаптер на обычном Realtek 8187, который два года исправно работал точкой доступа под Windows. В новой плате Wi-Fi модуля не было, зато у меня появился целый сервер на замечательном Intel Atom 525 с одним маленьким недостатком — в нем было очень мало PCI слотов.

Немного поразмышляв, я решил сделать невинную, как мне сначала казалось вещь — запустить программную Wi-Fi точку доступа на обычном USB адаптере. Если бы меня предупредили что меня ожидает, я бы отказался от идеи с самого начала! Я раздобыл недорогой адаптер и, только в процессе возни с ним, стал осознавать что использование «неправильного» USB на «неправильном» чипсете это настоящее насилие для Linux! Гуру Линукса отказывались от помощи!

Тем не менее, мне удалось подружить Debian 6.0 с чипсетами Ralink 2870/3070 и Atheros 9170, и я готов раскрыть эту страшную тайну всему миру!
Вперед!

Операционные системы с нуля; Уровень 0

Время на прочтение11 мин
Количество просмотров134K

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


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


Тут есть про диски, файловые системы, операции ввода-вывода, потоки /процессы, планирование, виртуальную память, защиту и безопасность, прерывания, параллелизм и синхронизацию. Как и в любом другом, уважающем себя курсе. Разница в актуальности материала и в количестве практики. Коддить придётся много.

Читать дальше →

C++0x (С++11). Лямбда-выражения

Время на прочтение13 мин
Количество просмотров305K
Буквально на днях случайно наткнулся на Хабре на статью о лямбда-выражениях из нового (будущего) стандарта C++. Статья хорошая и даёт понять преимущества лямбда-выражений, однако, мне показалось, что статья недостаточно полная, поэтому я решил попробовать более детально изложить материал.

Читать дальше

Парсеры, обработка текста. Просто о сложном. CFG, BNF, LL(k), LR(k), PEG и другие страшные слова

Время на прочтение19 мин
Количество просмотров47K
Наверное, каждому программисту приходилось сталкиваться с задачами вида «прочитать что-то в формате А и произвести с ним некие манипуляции». Будь то json, логи nginx, cfg, sql, yaml, csv или что-то еще. Хорошо, когда можно воспользоваться библиотекой, однако, по разным причинам, это удается не всегда. Тогда и встает вопрос создания собственного парсера для заданного формата. И это, как говорят англичане, часто оказывается PITA (болью в ...). В этой статье я постараюсь облегчить эту боль. Кому интересно, добро пожаловать.
Читать дальше →

Wine 3.0 и много плюшек

Время на прочтение5 мин
Количество просмотров53K

На Хабре незамеченным прошел выход 3-й версии Wine — открытой реализации Win32 API. Трудно найти другой проект с открытыми исходниками, за исключением ядра, который бы так много значил для пользователей Linux, MacOS, FreeBSD и других POSIX-совместимых ОС. Каждый успех разработчиков Wine приводит к тому, что множество новых игр и приложений становятся доступны для пользователей Linux.


Wine


В этом плане Wine 3.0 явно не разочаровал: поддержка Direct3D 10 и 11, графический драйвер Android, поток команд Direct3D, реализован криптографический стандарт AES, новый уровень поддержки Direct Write и Direct2D — вот основные результаты. По итогам более 6000 внесенных правок произошло много интересного, включая переход дефолтной версии с Windows XP на Windows 7.


  • 4586 приложений с высшим, платиновым статусом. Работают без нареканий.
  • 3918 приложений с золотым статусом. При минимальных настройках и внешних DLL работают без нареканий.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Ставрополь, Ставропольский край, Россия
Зарегистрирован
Активность