Machine Learning Advanced 1. Elements of Statistical Learning (http://statweb.stanford.edu/~tibs/ElemStatLearn/printings/ESLII_print10.pdf ) Сложность - 9 из 10. Шутки в сторону, можно читать годами. Если вы сможете полностью проработать эту книгу и прорешать упражнения, обязательно свяжитесь со мной - у меня найдется работа для вас. 2. Optimization for Machine Learning. Edited by Suvrit Sra, Sebastian Nowozin and Stephen J. Wright, MIT Press, 2012. Иногда from sklearn.linear_model import LogisticRegression перестает работать и тогда нужно все переписать. Оптимизация квадратичных приближений на больших объемах данных, разреженные модели, суррогатные оптимизации - вот это все тут есть. 3. http://www.cs.nyu.edu/~mohri/mlbook/ Как ESL, только слегка по-проще. Попробуйте, может зайти.
Computer Science 1. Introduction to Algorithms, Corman 2. The Art of Computer Programming, Knuth 3. Compilers: Principles, Techniques, and Tools. Разработчикам компиляторов и прочим авторам убийц питонов и крестов посвящается. 4. Введение в информационный поиск, Кристофер Маннинг. Как работает поиск с теоретической точки зрения.
Programming 1. Python Unlocked. Короткая книжка без соплей. В ней описаны метаклассы, дескрипторы, системы типов, шаблоны проектирования и TDD. Всего чуть больше 100 страниц концентрированной сути. 2. Code Complete (2nd), McConnell. Неплохая книга. Не то чтобы обдрочиться, но в голове всякие фишки по структуризации кода и его проектированию остались.
Misc 1. Telegram: @techsparks Подкаст про всякие гик-штуки.
F.A.Q По мотивам предыдущего треда. Эти ваши книжки стоят овер 9000 рублей, как быть? http://libgen.io Книги хорошо, но с чего начать практический вкат? Во-первых, вам нужна любая unix-based система. На Windows возможно запустить нижеперечисленное, но ждите пердолева с настройкой и неодобрительных взглядов анонимуса. Кроме того, в компаниях, так или иначе связанных с разработкой йоба-ПО и machine learningом, Linux/OS X является стандартом. Привыкайте. Во-вторых, определитесь с языком. Python и C++ наиболее мейнстримовые инструменты, с ними вы без еды не останетесь. Есть еще R, на котором пацаны живут статистикой и анальными пакетами. Некоторые инструменты являются языко-независимыми (Vowpal Vabbit, XGBoost), но обвязывать их вы все равно будете из какой-либо среды. На Java разработано много production-ready инструментов для бигдаты и если вы угораете по терабайтам данных, то имеет смысл посмотреть в её сторону. Впрочем, лучше это делать уже потом, когда прийдет осознание потребностей. В-третих, выбирайте себе задачу. Что угодно: распознать качпу, обнаружить ботов по логам, найти раковых больных. Список можно посмотреть, например, на kaggle.com. После чего приступаете к решению выбранной задачи. Не прийдется ли мне потом с таким наборищем знаний идти в макдак работать? Несмотря на хайп вокруг ML, далеко не во всех IT компания есть необходимость в ML и понимание круга задач, которые можно решить этими методами. Но поверьте, в 2016 компетентный специалист будет востребован. В России потребителями ваших знаний могут стать: Яндекс, Mail.ru, Вконтакте, Rambler, Касперский, Билайн, Связной, ABBYY, Хуавэй. В биоинформатике есть определенный спрос, можно поскролить http://blastim.ru Здорово, но я так и не понял чем же вы занимаетесь в IT компаниях? Попытаюсь ответить со своей колокольни и сразу хочу предупредить, что это едва ли консенсуальное мнение. ML-специалист - это такое зонтичное определение для человека, способного увидеть проблему, выгрепать кучу логов и данных, посмотреть на них, придумать решение проблемы и врезать это решение его в продакшн. По сути, это кодер, решающий не чисто технические, а, в некотором роде, человеческие проблемы. Имхо, мы все же остаемся в первую очередь разработчиками. Но ведь есть Machine Learning per se, чем он занимается? Действительно есть. Одаренная прослойка людей изобретает новые методы, но это правильнее называть просто математикой. Сейчас пищей для ума являются нейронные сети и их возможные архитектуры, но даже они двигаются рука об руку с практикой. Что такое TensorFlow? TensorFlow - часть гуглового инструмента для перемножения тензоров и оптимизации функционалов. Часть - потому что важные куски типа параллелизации еще не выкачены в паблик. Если вам все ещё непонятно что это, значит это вам и не нужно, сириусли. Google перестарался с рекламой и теперь люди думают, что TF - это серебряная пуля и затычка для каждой бочки. До TF был Theano, который выполнял свою работу не хуже. И, в отличии от TF, он уже находится в стабильной фазе.
>>776227 а тебе что, ентерпраиз солюшены неинтересно разрабатывать? знакомая рижанка поступила на пхд на западе с обычным дипломом по матеше так что просто берёшь и поступаешь куда хочешь пока хайп не спал
>>776603 Я нуб, но по-моему что выборки картинок, подходящих под описание формируются вручную. Читал недавно статью как чуваки делали фильтр прона для какого-то сайта. В итоге, чтобы нейроночка выдала хоть какой-то реальный процент правильно распознанных картинок, им пришлось вручную отфильтровать пару гигабайт порнухи.
>>776271 >ентерпраиз солюшены неинтересно разрабатывать Нет. Я распознование капчи делал еще лет 5 назад. Это пиздец уныло.
>знакомая рижанка поступила на пхд на западе с обычным дипломом по матеше Блядь, ну это же хуйня. На PhD любой дурак поступить может, вопрос делают ли там что-то реальное.
>>776697 >нейроночка выдала хоть какой-то реальный процент правильно распознанных картинок исчо раз, нейронночка это говно и пеар, с технологиями оптических распознований объектов все плохо, от слова совсем.
Итак, в одном из прошлых тредов мне никто не пояснил за SVM. Я нихуя не могу понять суть этого метода, как именно он работает. Очевидно, что дело в недостатке некоторых знаний, которые предполагаются у читателя. Вопрос в том, есть ли нормальное объяснение, не предполагающее а включающее все наобходимое для понимания?
>>777218 Или задавай конкретные вопросы, или уёбывай читать Мёрфи/Бишопа, там кроме элементарного теор.вера, матана, линала и простейших оптимизационных алгоритмов от читателя не требуется. А то ноешь, как капризный студентишка: "НИЧЕГО НИПАНЯТНА!"
Бля, анон, как же меня всё это заебало. Я уже четыре ебучих месяца мучаю различные варианты MCMC на Марковских сетях. У меня нихуя не получается. Кто-нибудь занимался графическими моделями?
Алсо, в прошлом тредике был анон, который пояснял за кучу Лапласов в разных точках. Как это культурно называется? Я правильно понял, что строится аппроксимация в виде смеси Гауссиан?
ОП, спасибо за перекат, у меня времени совершенно не было. >>776227 >ШАД Да >cs.hse Бакалавриат сейчас вроде бы ОК, магистратура - хуйня. >>777679 Ветров занимался ОП прошлых тредов
>>776147 (OP) Аноны, привет, вы меня помните? Так вот, я заебался, читаю эту вашу книгу по алгоритмам и дошел до наивного Байесовского классификатора. И охуел, я и так понимаю очень мало, так вот еще и там МАТАН, понимаете, самый что ни на есть матан в виде теории вероятности, которую я не знаю особо.
>>778637 НА АНГЛИЙСКОМ? Лел, уже не сегодня, голова болит от такого потока информации, который почти не разбираешь. Да и по идее я должен понять все прямо из учебника, но нет.
>>778648 Да можешь лесом гулять, зеленый. >>778649 Это уже не просто потуги, а план чтения целой книги за месяц, в виде получения профита от изучения пары сотен новых слов и очень многих тем в машинном обучении.
Посоветуйте книгу для максимум дебилов. Статистику только немного знаю на уровне всяких доверительных интервалов для неизвестных параметров и функций правдоподобности.
>>778908 Они почти все разреженные, мб и сработает. Хотя так и просто постериорный риск можно пытаться минимизировать, но это печально работало. Блин, вывод в несопряжённых моделях – сплошная боль.
Аноны, поясните мне что значит следующее: >The first thing that we need to do to get these values is to quantise the measurement x, which just means that we put it into one of a discrete set of values {X}, Что значит квантизировать измерение x? Типа есть некоторый прерывистый набор значений X И у нас есть переменная, но как мы разместим значение x?
>>779050 Графически гистограмма строится следующим образом. Сначала множество значений, которое может принимать элемент выборки, разбивается на несколько интервалов (bins). Чаще всего эти интервалы берут одинаковыми, но это не является строгим требованием. Эти интервалы откладываются на горизонтальной оси, затем над каждым рисуется прямоугольник. Если все интервалы были одинаковыми, то высота каждого прямоугольника пропорциональна числу элементов выборки, попадающих в соответствующий интервал. Если интервалы разные, то высота прямоугольника выбирается таким образом, чтобы его площадь была пропорциональна числу элементов выборки, которые попали в этот интервал.
Аноны, а что такое совместная вероятность? Вики говорит одно, а в книге написано >This is exactly what is plotted in Figure 2.10. Now, if we have lots of examples of the two classes, and the histogram bins that their measurements fall into, we can compute P(Ci , Xj ), which is the joint probability, and tells us how often a measurement of Ci fell into histogram bin Xj . Почему тут написано, что это то, как часто измерения Ci впадают в интервал гистограммы Xj? Но ничего не сказано про: >Вероятность суммы двух совместных событий равна сумме вероятностей этих событий без вероятности их произведения
Есть один проект на .net. Нужно выбрать язык для анализа данных и обучения. Что выбрать? Стандартные python или R, или же может F#? Что местные обучатели бы выбрали?
# y.shape[0] is (symbolically) the number of rows in y, i.e., # number of examples (call it n) in the minibatch # T.arange(y.shape[0]) is a symbolic vector which will contain # [0,1,2,... n-1] T.log(self.p_y_given_x) is a matrix of # Log-Probabilities (call it LP) with one row per example and # one column per class LP[T.arange(y.shape[0]),y] is a vector # v containing [LP[0,y[0]], LP[1,y[1]], LP[2,y[2]], ..., # LP[n-1,y[n-1]]] and T.mean(LP[T.arange(y.shape[0]),y]) is # the mean (across minibatch examples) of the elements in v, # i.e., the mean log-likelihood across the minibatch. return -T.mean(T.log(self.p_y_given_x)[T.arange(y.shape[0]), y])
Бля, это получается не нужно обратное распространение ошибки?
>>779167 я хочу из питона написать на паскале пример сверточной сети. Но вот написал с обратым расп ош и без батчей и вместо пуллмакса сделал матрицу весов 2*2(что неправильно как я понял)
Короч, на сколько я понял, логичнее всего где у нас пуллмакс просто записать из уменьшенного слоя в слой исходный просто размножить на 2*2, т.е. 4 раза повторить тот же результат что у нас был уменьшенном слое и все.
>>779214 Хрен с ним со средним значением, вроде как понятно что из всего батча он среднее считает. Но почему отрицательный логарифм? Понятно что он оптимизирует эту функцию(где об этом почитать?) градиентным спуском(берет производную от функции ошибки), но как понять, что там делается между такими специфичными слоями где пулмакс?
>Между этими двумя видами градиентного спуска существует компромисс, называемый иногда «mini-batch». В этом случае градиент аппроксимируется суммой для небольшого количества обучающих образцов.
Это вообще не пойму где в коде, там только среднее значение есть, суммы не вижу.
>>779224 >Хрен с ним со средним значением, вроде как понятно что из всего батча он среднее считает. Но почему отрицательный логарифм? Понятно что он оптимизирует эту функцию(где об этом почитать?) градиентным спуском(берет производную от функции ошибки),
Короч вот так на этот вопрос
A common choice with the softmax output is the categorical cross-entropy loss (also known as negative log likelihood). If we have N training examples and C classes then the loss for our prediction \hat{y} with respect to the true labels y is given by:
The formula looks complicated, but all it really does is sum over our training examples and add to the loss if we predicted the incorrect class. The further away the two probability distributions y (the correct labels) and \hat{y} (our predictions) are, the greater our loss will be. By finding parameters that minimize the loss we maximize the likelihood of our training data.
Аноны, что здесь значит fall into? >Now, if we have lots of examples of the two classes, and the histogram bins that their measurements fall into, we can compute P(Ci , Xj ), which is the joint probability, and tells us how often a measurement of Ci fell into histogram bin Xj. Давайте, вы же все знаете английский. Тут же говорится о совместной вероятности двух событий. Где все может быть записано как P(Ci)P(Xj), так почему тут говорится что одно fall into от другого? Опечатка?
>>779277 > все может быть записано как P(Ci)P(Xj) Не может быть. Это верно только для независимых событий. Вероятность пересечения — количество измерений класса Ci попавших в интервал Xj делить на количество всех измерений (в x в обозначениях твоей книжки): P(Ci, Xj) = |Ci ∩ Xj| / |x|
Аналогично: P(Ci) = |Ci| / |x|
Условная вероятность P(Ci | Xj) — рассматриваем только Xj, это теперь это все наши измерения, других больше нет. Количество измерений класса Ci теперь равно |Ci ∩ Xj|, остальные выкидываем. Количество всех измерений теперь равно |Xj|, а не |x|. P(Ci | Xj) = |Сi ∩ Xj| / |Xj| = P(Ci, Xj) / P(Xj).
>>779358 Верно ты перевел, joint probability — совместная вероятность или вероятность совместного появления (двух) событий. Для независимых событий это верно, что P(AB) = P(A)P(B), но в общем случае нет.
>>779364 А все, тогда меня подвел русский интернет, который сразу выдал про независимые события. Ладно, уже подбираюсь к Гауссу по книге, завтра про нейронки буду читать, видел, что там наконец код появится.
Я правильно понял, что там разница только в том что целевая функция в ОРО разница сумм полученного значения и целевого, а в сверточной сделали сумму логарифмов произведения полученного значения и целевого?
Ребят, такая вот задача. Есть выборка в 100к предложений, независимых друг от друга. Все они принадлежат одному классу. Необходимо по любому предложению оценивать, принадлежит ли оно данному классу. Как решать такие задачи?
и восстали машины из пепла ядерного огня, и пошла война на уничтожения человечества и шла она десятилетия, но последнее сражение состоится не в будущем, оно состоится здесь, в наше время, сегодня ночью
когда вообще можна вкатываться в этот ваш ML, учу web и думаю стоит ли вообще идти делать вышку или сразу пытаться найти работу с минимальными знаниями в web, темы вроде бигдаты и ML интересуют меня, но берут ли туда без опыта в чем то проще типа того же веба, даже если я выштудирую большую часть тех книг из шапки возьмут ли меня каким то джуном (в ML) без вышки и опыта? Как быть анон, наверняка в треде матёрые специалисты сидят, которые могут дать совет
Короче, что я понял за SVM (если несу хуйню, прошу поправить): 1) SVM представим в форме нейроночки (Воронцов), скрытый слой которой - ядра, умноженные в т.ч. на соотв. им множители Лагранжа, которые равны 0 для всех векторов датасета кроме опорных. Т.о. число элементов скрытого слоя = пространству Вапника-Червоненкиса для данного датасета. 2) Сами множители Лагранжа находятся оптимизацией квадратичного функционала ф-ии лагранжа с заданными ограничениями, что сводится к задаче квадратичной оптимизации и решается любыми подходящими солверами. 3) Ограничения заданы так, чтобы множители Лагранжа имели ненулевое значение только для опорных векторов, т.е. тех, что лежат точно на границе гиперповерхности, разделяющей классы датасета. Ебля с ядрами нужна для работы с линейно-неразделимыми классами в датасетах. Суть использования ядер в замене линейного расстояния между элементами датасета на нелинейное между их отображениями, задаваемыми ядром. 4) В реальных SVM вместо простого решения задач квадратичной оптимизации используются всякий онанизм вприсядку, т.к. при больших датасетах матрицы получаются совершенно конских размеров (10000 примеров-векторов в датасете даст матрицу в 100000000 векторов и т.д.).
>>780219 просто интересуют темы посложнее, не хочу всю жизнь пилить сайтики, конечно я понимаю что прийдётся тратить овер дохуя времени на самообучение, но это намного интереснее, просто я понятия не имею как выстраивать карьерную лестницу, загуглил оферы по мл там только всего околок 7 оферов и в 6 нужео сеньор, в 1 практика для студентов. А в остальном посмотрел на оферы в целом, почти везде требуются знания web
>>780365 >а нейронные сети уже не ии? Нейроночки просто удобное представление для алгоритмов МЛ, т.к. в любом из них есть элементы, слои, веса и т.д. Задача собственно моделирования функций нервной системы или какой-то ее части ставится в очень немногих алгоритмах, из которых практически используются перцептроны, SOM да сверточные сети. И они как раз норм работают. Сверточные сети на сегодняшний день самый годный сетод распознавания изображений.
И таки я примерно правильно понял суть SVM, только что нашел, в пакете для R kernlab расписано как запилить SVM вручную, пикрелейтед. Сначала подготавливают данные, затем делают RBF-ядро и задают параметр С, затем натягивают сову на кернел получают проекцию датасета на кернел и далее подкладывают все это солверу для нахождения седловой точки совы множителей Лагранжа.
>>780376 >Задача собственно моделирования функций нервной системы задача нейронной сети пилить гранты и кормить говном ньюфагов, к биологическому подобию мозга неимеющего абсолютно никакого отношения, а также полный абасрамс в любом более менее серьезном ии проекте, например ocr
>>780864 Чтобы брать гранты от всяких научных организаций и заниматься всякой интересной мне хуйнёй, заодно заигрывая со студентками и аспирантками. А вообще дата сайенс нормально так хайпнут, а здесь без этого никуда. Тут дохуя примеров приводилось.
>>780799 насколько я понял для всякого ии и дата сайнс придется все же делать вышку? Тогда такой вопрос, что начинать изучать если у меня до поступления в вуз несколько лет ещё + несколько лет обучения, что б не тратить время в пустую( я имею ввиду технологии/области матана)
>>780879 Счастливчик, вместе с погроммированием и алгоритмами пробуй начинать изучать вузовский курс математики. Не торопясь и основательно. К третьему курсу уже будешь давать на клыка всей своей шараге.
>>780879 Посмотри шапку этого треда: https://2ch.hk/sci/res/369067.html Только в целом со ски осторожней, у них там дохуя поехавших. Обрати внимание на элементарный курс и базовый.
>>780889 Я же не уточнил, что это всё в моём влажном манямирке. На деле заигрывания для меня сводится к кивку знакомой страшной дырке, поверхность лица которой неплохо описывается Гауссовским полем, фигура линейно разделяет пространство, а волосы напоминают логотип Хабра. А гранты ирл есть, да.
>>781294 Все эти онлайн курсы чушь по сравнению с тем, что заставляют учить в рашковузах.
Возьмем, например, вот этот: Linear Algebra - Foundations to Frontiers 15 weeks 8 hours/week
Смотрим на список тем: Week 0 Get ready, set, go! Week 1 Vectors in Linear Algebra Week 2 Linear Transformations and Matrices Week 3 Matrix-Vector Operations Week 4 From Matrix-Vector Multiplication to Matrix-Matrix Multiplication Week 5 Matrix-Matrix Multiplication
5 сраных недель на то, чтобы добраться до перемножения матриц! На это хватит недели.
Week 6 Gaussian Elimination Week 7 More Gaussian Elimination and Matrix Inversion Week 8 More on Matrix Inversion Week 9 Vector Spaces Week 10 Vector Spaces, Orthogonality, and Linear Least Squares Week 11 Orthogonal Projection and Low Rank Approximation Week 12 Eigenvalues and Eigenvectors
Это еще максимум пару недель.
А вообще, весь этот курс или эквивалент можно за неделю выучить, если время есть.
>>781353 применяй как обычо у тебя на самом внешнем слое сигмоиды/софтмаксы же? тогда логарифм праводоподобности разложится на сумму кросс энтропии, ему похер какая у тебя функция активации во внутренних слоях
Я вот хотел начать курс по тому что кидали выше на гитхабе, но вы его раскритиковали, мол как так, там алгебра за неделю учится! Плюс там как я посмотрел много повторяющихся вещей, а может какой нибудь еще есть роадмап, потому что в оп посте сразу в книгу по статистике кидают. На фоне у меня опыт только в мобильной разработке меньше года.
>>782273 Учебник по мат. анализу. Учебник по линейной алгебре параллельно к матану. После этого учебник по терверу и статистике. Этого должно быть достаточно для того, чтобы начать читать книги по ML.
По ссылке в >>782327 предлагается курс по алгебре Strang'а, он не углубляется в теорию, но его должно быть достаточно. Материал относительно простой и подается нормально. Есть пдфки с контрольными работами и ответами к ним, даже указаны баллы за задачи, так что можно будет выставить себе оценку.
ML класс от Andrew Ng не рекомендую, слишком поверхностно, лучше посмотреть его лекции на ютубе и читать материалы к курсу, которые доступны здесь: http://cs229.stanford.edu/ Но этот курс только после того, как закончишь с тервером и статистикой.
Про остальные ссылки из той вики ничего не могу сказать.
> хотел начать курс по тому что кидали выше на гитхабе, но вы его раскритиковали, мол как так, там алгебра за неделю учится! Что касается онлайн курсов. То, что в них подается все в довольно поверхностном или практическом виде и не требует значительного времени на изучение, не обязательно является чем-то плохим. Во всяком случае для чтения книг по ML инфы там достаточно, а углубиться в какую-нибудь тему можно будет по необходимости.
>>782499 Нужно вычислить величину (x_+ - x_- ) w / |w|, где x_+, x_- опорные векторы, то есть такие, которые удовлетворяют уравнению +1 (x_+ w + b) - 1 = 0 -1 (x_- w + b) - 1 = 0 соответственно. Теперь сложи их, поделив на норму w, и получишь ширину полосы с точностью до множителя.
>>782369 Ну вот скажи мне зачем мне все эти доказательствам криволинейных интегралов в ML или зачем мне аффиные и банаховы пространства в ML, конкретики больше, пожалуйста. Какие темы? Не всего ж мне Ильина ж читать
>>782937 Ты же хочешь когда-нибудь в Silicon Valley уехать? А туда не берут без знания метрической геометрии и функционального анализа. Не осилишь - так и будешь до конца жизни в рашке энтерпрайз солюшены крудошлепить.
>>782967 Ещё подумалось, глядя на это всё, что прослеживается некоторая цикличность в развитии. Сначала были простые объекты — числа. Людей на практике интересовало число. Но работать с числами — это сложно, и люди изобрели алгебру, чтобы упростить себе жизнь. Алгебра породила анализ, дифференциальное и интегральное исчесление, понятия предела. Анализ породил сложные геометрические объекты, в т.ч. в многомерном пространстве, которые уже тяжело исследовать методами анализа. Анализ слишком детален для этого. Тогда изобрели топологию и начали исследовать объекты топологическими методами, а позже (ещё более?) «мягкими» — алгебраическими. Так анализ породил алгебру второго порядка абстракции: гомологии всякие, когомологии, Tor'ы. Но когда начали исследовать эту алгебру в целом, в совокупности, вырисовался анализ этих объектов! Дифференциальная гомологическая алгебра! В книжке, которая выше цитируется, есть глава про эту тему. А потом что? Новый анализ породит ещё более абстрактную алгебру? Такое впечатление, что когда мы идём вверх по пути всё большей абстрактности и общности, анализ и алгебра чередуются друг с другом. Не знаю, насколько эта мысль нова/стара, но я её нигде не слышал.
Вообще, я бы, наверно, выделил следующие три уровня:
Алгебра первого порядка: школьная (всё, что мы знаем). Алгебра второго порядка: линейная и общая (матрицы, линейные пространства, группы, кольца, идеалы и т.п. множества). Алгебра третьего порядка: гомологии, когомологии и т.п.
Алгебра n+1'ого порядка имеет объекты n'ого порядка как свои элементарные.
>>782967 >, что используется в этих выжимках — производные и интегралы. Производные я и так сейчас умею брать, все таки что-то помню с курса примата, интегралы вручную - ну хуй знает, всегда с ними были проблемы, всегда в вольфрамах высчитывал.
>>783005 Только чем дальше в лес, тем толще абстракции и тем меньше людей в них могут. Как итог, в IUTeich Мотидзуки могут 4 человека из 7 млрд. Вот и приехали.
У меня вот какой вопрос. Как известно, существует немало попыток использовать для сверхбыстрых вычислений специализированные оптоэлектронные решения, заточенные под конкретный алгоритм. Есть подобные варианты нейросетей, нечетких моделей пикрелейтед и т.д. А есть ли подобные реализации генетических алгоритмов? Что-то гуглю и пока ничего интересного не нагуглил.
>>783255 Как ты себе это представляешь? В известных мне оптических нейроночках всё происходит на гологораммах. Для ГА же нужны элементы случайности, ещё требуется порождать новые объекты с новыми свойствами. При желании можно достичь первого, покрутив источник излучения. Второе же достичь достаточно трудно, на мой взгляд.
Бля, вы такие крутые, т.е. если я умею работать с матрицами, брать производные и прочее - то уже могу заняться этим всем. Доказательства ведь не обязательно знать? А то помню так затрахался в институте их сдавать, зубрил. ибо не понимал.
Пара тупых вопросов по раскуриванию сути нейросетей. 1) Есть 2 искусственных нейрона: к одному подключено, например, 10 входов, к другому 2 входа. Это ведь получается, что первый нейрон гораздо легче активировать, нежели второй? Никак ли это не компенсируется/корректируется в структуре или параметрах? Если нет, то каков в этом смысл с точки зрения какого-то принятия решения или типа того? Вряд ли же будет верно то, что чем больше входов у нейрона, тем он важнее? 2) В учебниках и статьях нейросети изображают обычно так, что каждый вход подключен к каждому нейрону сети. Всегда ли это именно так делают? Можно ли вмешиваться в структуру сети, делая, например, чтобы в первый нейрон входили 1, 2, 3 входы, во второй какие-нибудь 2, 5, 6 и т.д.? Или все-таки структура должна быть однородной и веса сами скорректируют "отбор" нужных входов?
>>784301 >>784308 Что можно почитать для раскуривания? Само понятие и представление о регрессии и регрессионном анализе не дают ответов на мои вопросы.
>>784267 Тебе не ML нужен, а DSP. Достаточно тебе enveloper follower + moving average filter, далее run length encoding, а потом можно уже анализировать цифры.
>>784343 Да там тоже черт ногу сломит. Если уж совсем от сохи, то просто делать DFT, сделать ручной детектор писка по частоте, потом детектор длинного/короткого сигнала, ну и таблицу забить. На коленке за день можно сварганить.
>>784288 Короче допетрил до ответов сам. Но вот ко второму появилось некоторое дополнение. Если даются какие-то входы, и нужно получить выход (зависимость от входов), то в общем-то нужно все входы соединять со всеми нейронами, чтобы веса сами настроились как надо, и получились эти нужные коэффициенты регрессионной модели. Однако в сверточных нейросетях эти входы могут все-таки разбиваться в некоторые группы, которые при этом могут и пересекаться, и эти группы в некотором роде можно называть признаками каких-то особенных деталей из входных данных. Вопрос как раз в том, когда инпуты разбиваются, а когда они полной охапкой передаются в слой сети? В чем природа этого разделения входных переменных? Про сверточные нейросети я, правда, только обзорно читал, возможно при углублении это снова мне станет понятным, но все-таки.
>>784416 Очень хороший вопрос, но пробелма в том, что все бьются над тем какаой должна быть "правильная" архитиктура нейросетей. Поэтому то, что сейчас называется глубокие сети уже большая находка.
Алсо, посмотри записи с DeepHack, там были обсуждения архитектур нейросетей и решаемых ими задач.
>>784503 > Слил 10к на фьючерсах сбербанка. Да это плевать. Давай лучше методику обсудим.
Почему этот инструмент используешь? Как минимизируешь риски? Какая используется модель? Торгуешь в (полу)автоматическом режиме? На какой срок строишь прогнозы? Как проверяешь прогнозы? Через какого трейдера работаешь?
>>784529 Трейдер финам, но это вообще фигня, не я выбирал, пришел батя, сказал вот счет, ты ж сына программист, сиди торгуй. Торговал в полностью автоматическом режиме, прогнозы не дальше дня. Пробовал арбитраж. То есть берешь, грубо говоря, нефть и акцию лукойла, одно покупаешь, другое продаешь, в теории в среднем должен быть небольшой +. Как что от чего зависит изучем с помощью ml. Модель была простая линейная, всякая умная фигня типа нейронных сетей работала хуже.
Но я изначально неправильно тестировал, не учел комиссию. Опять же писал свой тестировщик. Когда наносался хуев пошел дальше учить теорию ml+питон, который для этих дел оказался лучше матлаба.
Аноны, у меня появилась безумная идея симулировать поведение живых существ в игре с помощью нейронной сети. Но потом вспомнил, что нейронные сети всего-лишь аппроксиматор функции. Значит ли это, что мне надо использовать несколько нейронных сетей, направленных на обучение в каком-то направлении? Например, с помощью одной сети паук учится нападать на человека, с помощью другой бегать, с третьей оценивать ситуацию, с четвертой разрабатывать тактику? Или как это работает? Писал перцептроны до этого.
>>784550 В мозге по сути так и есть, выделяют различные области коры по из назначению, например: зрительная, моторная. За какую-то логику отвечает префронтальная кора.
>>784554 Использовать этот метод, хорошо. А можно ли сделать обучение непрерывным? Или одна сеть должна научиться выполнять 1 тип задачи? Можно ли написать зависимости между сетями, чтобы результаты обучения 1 сети действовали на другую? Можно ли сделать так, чтобы сети эти зависимости нашли самостоятельно или не стоит?
>>784574 Кое-чего я так и не понял, можно ли его чему-нибудь новому научить? Этот как с функцией XOR, только есть одна странность, у меня число методов, которые можно использовать неизвестны. Есть ли какой-нибудь расширяющийся перцептрон, например? Или как это еще можно решить, кроме добавления слоев?
>>784584 > Кое-чего я так и не понял, можно ли его чему-нибудь новому научить? Не знаю, как с нейроночками, но людей можно даже обучить видеть с помощью языка и камеры: https://www.youtube.com/watch?v=n1ViNeWhC24
Нейроночкам можно скармливать данные по мере их поступления, т.н. online learning. Может быть если данные кардинально изменятся, то со временем нейроночка полностью перестроится под новые данные аля "видеть языком". Проблема в том, что обычно архитектуру сети подбирают под задачу и какой-то универсальной работающей хорошо на всех типах задач, как я понимаю, до сих пор не придумали.
>>784617 Да я уже почти со всем определился. сети, сеть на ходьбу, вторую на оптимальный путь, третью на атаку, четвертый на анализ боевой ситуации убежать, какую атаку использовать И сеть над ними, которая будет учиться эффективно все это использовать. Но тут уже настигают проблемы, так как локации могут быть разными. В одной, например, может быть множество вертикальных объектов, а в другой надо быстрее бегать. Как боту разделять признаки, когда и какую стратегию лучше использовать? Ведь признаков может быть бесчисленное множество и выделять их можно до бесконечности. А вот проклятие размерности не даст мне ничего подобного, а использовать огромное количество ресурсов на обычного моба - глупо.
>>783876 У нас был такой вуз, что запускают по 5 человек в аудиторию на 4 препода, которые смотрят за тобой. при шуршании малейшем народ выгоняли пачками - охуенно спишешь да?
>>784656 Ой я дебил, разгадка то кроется в сети, которая настроена на оптимальный путь. Именно все множество методов из нее и будет определять множество стратегий. И чем больше будет в ней нейронов, тем больше и в остальной сети будет методов. Эх, не в этот раз я столкнусь с проклятием размерности, не в этот.
>>784663 Зубрить это и есть списывать с памяти, проблемы? Вспоминаешь листок тетрадки фотографически и хуяришь Короче чо ты доебался, вот чо ты доебался?
>>784666 Расслабься, это всего лишь шутка была. Что-то на уровне: - как вспомнить определение теоремы во время экзамена? - вспоминаешь доказательство и выводишь из него определение
> Как что от чего зависит изучем с помощью ml. Это корреляционные коэффицинеты считать что ли?
> Модель была простая линейная Линейная регрессия? Что в фичах? Какая регуляризация? Какой функционал качества? Чем оптимизируешь?
> нейронных сетей работала хуже Не удивительно.
> ml+питон ... оказался лучше матлаба Сейчас питно де факто стандарт научных и околонаучных вычилений. Обрати внимание на pandas, если ещё не работал с ним.
>>785123 Сап. Наблюдаемые данные - n-мерные вектора (15-20 мерные); Координаты векторов, вещественные числа меняются в пределах [-1:1] (В теории, на практике скорее всего разброс может быть меньше); Тут данные имеют непрерывную природу, и не получается использовать дискретное распределение. Какой закон распределения использовать для наблюдаемых данных?
Если есть желание помочь, могу скинуть фейко мыло.
>>785210 Суть вопроса матрица вероятностей для наблюдаемых значений - тут и предлагают использовать непрерывное распределение. Брать n-мерный интеграл от плотности распределения ( в данном случае за плотность взял Гауссову функцию распределения)?
(Приложил картиночки, там вроде в второй картинке ошибка, как раз без n-мерного интеграла?)
>>785218 Для Гауссовской функции интеграл можно взять аналитически. Для сложных распределений можно использовать методы Монте-Карло (importance sampling, rejection sampling, MCMC) или использовать вариационные аппроксимации.
>>785236 Вот тут при расчете B (матрица вероятностей для наблюдаемых значений) - мы просто берем Гауссову функцию распределения? Или нужна именно функция распределения? (то бишь интегрировать Гауссову функцию?)
>>785571 Ты про смещения в нейронах? Если да, то можно и без них. В некоторых задачах, говорят, они могут дать намного круче результаты, нежели без них (сам не пробовал). По сути, смещение поднастраивает активационную функцию, сдвигая ее график влево или вправо (т.е. соответственно "облегчая" активацию, или наоборот, делая так, чтобы требовалось еще большие значения на входах нейрона).
>>776147 (OP) Аноны, я пока читаю свою книжечку, которую вы мне дали и появились пара вопросов: В книге говорится о том, как изменять веса и дана эта формула >Wik = -(yk-tk)*xi yk - то, что нейрон сделал в этот момент tk - то, что должен был сделать Зачем мы ставим - перед ними? Думаю, разгадка в этой строчке, которую я не могу правильно перевести >That element of the input could be negative, which would switch the values over; so if we wanted the neuron to fire we’d need to make the value of the weight negative as well.
>>785710 Я не точно уверен, но по идеи мы используем что-то типа градиентного метода минимизации функции, а сам градиент направлен в сторону наискорейшего возрастания функции. Поэтому если мы хотим вниз спускаться, то градиент надо брать со знаком минус.
>>785778 вот тот же момент в другой книге у бишопа сначала выписываешь вероятность данных при заданных параметрах/весах (4.89) потом берёшь негативный лог этой вероятности и потом берёшь производные, получается такая же формула как у тебя (4.91)
только в твоём случае с переди минус потому что автор не брал негативный лог в шаге 4.90
>>784416 >Вопрос как раз в том, когда инпуты разбиваются, а когда они полной охапкой передаются в слой сети? В чем природа этого разделения входных переменных? Я ж тута уже упоминал статью Горбаня http://kpfu.ru/portal/docs/F1732864826/02_5.PDF , в ней опять же, разбирается результат, полученный еще Колмогоровым и составляющий собственно суть нейроночек: представление одной функции многих переменных через суперпозиции частных функций от 1-2 переменных. Сие и есть ответ на твой вопрос о разбиении входов. Кроме того, нелишне разобрать теорему Стоуна-Вейерштрасса.
>>785796 Черт, ну что за двачах за аутисты то сидят, пиздец? В тексте написано, что мы показываем векторы нейронной сети и один нейрон неправильный (его выход не совпадает с целью). Это веса m, которые соединены с нейроном, каждый из которых весов - это входная нода. Если мы назовем нейрон, который неправильный, как K, тогда веса, которые нас интересуют - это Wik, где i - промежуток от 1 до m. Так мы знаем, какой вес меняется, но нам необходимо решить, как изменить значение этого веса. Первое, что нам необходимо узнать - это является ли значение веса слишком большим или слишком маленьким. Это типа очевидно: веса больше, если нейрон активируется когда не надо и меньше, если не активируется когда надо. Так мы посчитаем y(k)-t(k) - это является разницей между тем, что нейрон получил и целью. Это возможная функция ошибки. Если она негативна, когда нейрон должен активироваться и не сделал это, то мы делаем веса больше и наоборот если она позитивна
И дальше я нихуя не могу понять, написано Держитесь, поехали дальше.
>>783801 >Как ты себе это представляешь? Я подумал, что вряд ли идея запилить GA на оптронике принадлежит мне и скорее всего кто-то уже пытался, хотя бы на бумаге. И таки я нашел, некие жиды разрабатывали такое. Вообще, странно что эта тема не развивается, нейроночки на оптике должны быть быстрее и дешевле чем на электронике.
>>785807 Так, а дальше написано >Этот входной элемент может быть отрицательным, что поменяло бы значение местами. Так если мы хотим чтобы нейрон активировался нам необходимо сделать значения весов негативными также. Чтобы обойти эту проблему мы умножаем их вместе, чтобы посмотреть как мы должни изменить веса. Wik = -(yk-tk)*xi, и новое значение веса это старое значение плюс это значение. И тут я потерял логику, старое занчение чего плюс новое значение чего? Весов?
>>785855 Мб если yk < tk, т.е. нейрон дал слабый сигнал, хотя должен был быть сильнее, при этом (yk - tk) получается отрицательно, но нам нужно прибавить весу, чтобы в следующий раз сигнал был как надо, поэтому мы инвертируем эту разность, получаем -(yk-tk). А если yk > tk, т.е. нейрон дал больше, чем надо, тогда (yk - tk) положительно, и чтобы уменьшить вес, надо снова взять эту разность с отрицательным знаком.
>>785866 У нас получается, что если нейрон дал слабый сигнал, то необходимо его усилить. А если нейрон дал сильный сигнал, то надо уменьшить веса, путем вычитания значения ошибки.
>>785871 Но если значение входа уже отрицательно, то это поменяет значения местами, тогда, если мы хотим, чтобы нейрон активировался, нужно сделать значения весов отрицательными
>>785875 И чтобы решить эту проблему мы ставим - Но откуда в этом выражении появился X(i) - хуй знает. i - это промежуток от одного до m И хуй знает, что он обозначает.
>>785882 Есть нейрон. От 1 до m входов. Один выход: принимает значение yk. По обратному распространению на "выход" пришло необходимое значение tk. Мы получаем ошибку как бы для всего нейрона, это yk-tk. И эту ошибку уже надо применить ко входам этого нейрона, которых m штук, а значение на каждом из входов x(i).
>>785886 Так i - это число входов То-есть мы берем отрицательное значение от того, как должно быть и умножаем это на прежние значения весов, где x - это значение веса, а i - индекс веса?
>>785902 Нет, I - это число входов >When we looked at the McCulloch and Pitts neuron, the weights were labelled as wi, with the i index running over the number of inputs.
>>785913 Не совсем. Это годится скорее для чего-то однослойного, например перцептрона, когда слой знает о том, что получилось и о том, что нужно было получить, и таким образом R-элементы может подправить веса от входов, которые поступают с А-элементов. Но между S и A веса не регулируются.
>>785920 Это разве не логическая ошибка? Если я хочу узнать массу планеты. То мне надо знать массу планеты? Или на это w(i,j) после стрелки не обращать внимание?
Аноны, а как тогда делают всякие нейроночки, где просто дохуя всяких переменных? Типа той, что играла в го и обыгрывала военного летчика. Это просто сеть, у которой хуева туча слоев?
Пиздец. Почему здесь так много аутистов с тупыми вопросами. Прошлись бы по основам ML, взяв курс хотя бы на курсере, а не лезли бы сюда с илиотскими вопросами.
>>785938 байесовский вывод - эт тип когда приоры)))
нечёткая логика - единственное перспективное направление в мл
дискретный матан
АНОНЧИКИ, ПОСОВЕТУЙТЕ КНИЖКУ ПО ДИП ЛЕАРНИНГУ, ТОЛЬКО НА РУССКОМ БЕЗ МЕТЕМАТИКИ, РЕГИСТРАЦИИ, СМС И КРОСС-ВАЛИДЕЙШЕН. АНОНЧИКИ, А МОЖЕТ ЛИ СЕТОЧКА НАУЧИТЬСЯ ГЛУБОКОМУ БЛОУДЖОБУ? НО ВЕДЬ ЛЮДИ ТАК НЕ ОТЛИЧАЮТСЯ, СЁРЛ, СЁРЛ, СЁРЛ.КАК ПОСТУПИТЬ В ШАД, ЕСЛИ У МЕНЯ ДЕВЯТЬ КЛАССОВ ОБРАЗОВАНИЯ В ШКОЛЕ ДЛЯ ДЕБИЛОВ?
Завтра ищешь в интернете книжку "Neural networks for pattern recognition". Похуй если ничего не поймешь. Затем идешь на deeplearning.net и изучаешь библиотеку theano от корки до корки. Потом зубришь, именно, сука, вызубриваешь алгоритм обратного распостранения ошибки - чтоб от зубов отскакивало. Когда напишешь свою первую нейроночку, по пути изучив бейсовское фичё селекшн, покупаешь и изучаешь видео карту, рекомендую NVIDIA GTX980. Как переделаешь нейроночку, чтобы выдавала по крайней мере 5 тысяч предсказаний в секунду, можешь идти дальше - тебя ждет увлекательный мир диплёрнинга. CNN, RNN, сверхбыстрые асинхронные машины больцмана, tensorflow. Отсос хиккующих выблядков / просто неудачников типа нечётко-питуха или сёрло-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
>>786102 > через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты. Это сколько? Я сейчас питоновебдевом могу получать 4800-5600 в месяц.
>>786102 Все самое интересно вроде же выжали из сетей с нынешним уровнем производительности видеокарт. А вот что еще можно придумать если что-то помощнее появится?
Завтра ищешь в интернете книжку "Neural networks for pattern recognition". Похуй если ничего не поймешь. Затем идешь на deeplearning.net и изучаешь библиотеку theano от корки до корки. Потом зубришь, именно, сука, вызубриваешь алгоритм обратного распостранения ошибки - чтоб от зубов отскакивало. Когда напишешь свою первую нейроночку, по пути изучив бейсовское фичё селекшн, покупаешь и изучаешь нормальную видеокарту, рекомендую NVIDIA GTX1080. Как переделаешь нейроночку, чтобы выдавала по крайней мере 5 тысяч предсказаний в секунду, можешь идти дальше - тебя ждет увлекательный мир диплёрнинга. CNN, RNN, сверхбыстрые глубокие машины больцмана, tensorflow. Отсос веб макак / просто неудачников типа нечётко-питуха или сёрло-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
норм? добавьте ещё чего, может в окончание kaggle вместо сумм и заменить фичё селекшн DL-варианта этой пасты ещё небыло
Ребята, куда подаваться на тематическую магистратуру? Сам заканчиваю мухосранский матмех, и пока вижу только два адекватных варианта: ВШЭ и американский вуз средней руки с прицелом на аспирантуру в лиге плюща.1
Я опять с тупыми вопросами Поясните вот за это вот: Making the OR data is easy, and then running the code requires importing it using its filename (pcn) and then calling the pcntrain function. В чем смысл? Алсо, я наконец полностью разобрался в перцептроне и могу написать его на питоне, сейчас еще узнаю, что он не может в функции XOR и перейду к нормальным нейроночкам
>>788119 S-А связи по идеи просто описывают структуру входных связей, т.е. если есть то возбуждающий или тормозящий вход, если нет - значит нет. Обучается же слой A-R.
>>788119 Просто прочти на русской вики по поводу задачи XOR. Не может в XOR некий "однослойный персептрон", который, внезапно, является линейным классификатором, и был придуман много позже собственно персептрона (благо автор персептрона не был таким дебилом, чтобы взять линейный классификатор и назвать его йоба-названием).
Аноны, спасибо большое, что ведёте данный тред! Почерпнул для себя кучу полезной инфы по поводу обучения ML, теперь в ближайшие полгода буду ебашить матан изо всех сил.
>>788126 Число распредлений в смеси настраеваемый гиперпараметр, но есть непараметрические методы, где требование задавать число распределений обходится.
Правильно ли я понимаю, что при обучении батчами мы вычисляем среднюю dW(где Wij=Wij+dWij) по всей выборке батча. Т.е. вычислений по-сути будет чуть больше из-за промежуточного сохранения всех dW которые мы дели в конце на размер батча, только обновление весов будет один раз за батч?
Аноны, поясните мне за Теорему сходимости Перцептрона но не так, будто вы объясняете умному человеку, а так, будто работаете с дауном В частности, что обозначает это вот неравенство? tγ ≤ ||w(t−1)|| ≤ √t
>>788709 Так, вообще, ||w(t-1)|| - это разве не значения весов на прошлом шаге? А что тогда ty? t - насколько я понял, количество шагов обновлений весов. А y - наименьшее расстояние между гиперплоскостями или просто прямыми линиями. То-есть доказывается, что количество шагов умноженное на минимальное расстояние между линиями меньше или равно весам на прошлой итерации и значения весов на прошлом шаге меньше или равны корню из количества шагов обновлений весов? Что за бред?
>>788857 Я кстати застрял на части в реализации кода, Питона знаю хуево, это мне отвлечься от книги на немного дней или изучать Python параллельно, дабы я мог все примеры выполнять? Это задержит примерно на неделю.
>>788888 Там конечный смысл не в сравнении веса с какими-то числами, а в том, что ty <= sqrt(t), т.е. t <= 1/y^2. Вернись в начало параграфа, там как раз написано, что количество итераций ограниченно этим самым числом.
>>788989 Перцептрон может обучиться за конечное число шагов, т.е. за конечный промежуток времени. >>788993 Теорема состоит в том, чтобы показать, что это самое число шагов ограничено каким-то конкретным числом, а не бесконечностью или неопределенностью какой-нибудь.
Пока матан на первом курсе универа не пройдешь - лучше не лезь во все эти доказательства.
>>789009 Гамма - это не просто расстояние между гиперплоскостями, а это расстояние между классами (margin гугли, об этом упоминалось в твоей книге), которые перцептрон должен разделять. Понятно, что если это расстояние 0 - то перцептрон будет обучаться бесконечно, и так и не сможет различать классы в пространстве, потому что между ними нет границы. Ну и дальше сам додумывай.
>>789009 А может объяснения и не надо понимать? Ну запомнил, что число итераций ограничено и все? Или это выйдет мне сильно боком потом? По сути, я понял, что мне надо понять неравенство Коши-Буняковского.
>>789066 Но ведь оно доказывает, что весы через некоторое количество обновлений = > ty Иначе я не могу понять, как из неравенства получается так, что число деленное на другое в квадрате будет равно чему-то, а не стремиться к бесконечности, например.
>>789073 >число деленное на другое в квадрате будет равно чему-то, а не стремиться к бесконечности С чего бы это? Охуенная у тебя каша в голове. Гугли пределы и сходимость.
А лучше в универ сходи, тебе там все по-порядку разложат.
>>789091 Как нам препод говорил, в пту учат ремесленников, в универе инженеров. Учишься ремесленником - значит твоя задача не думать, а делать по технологии, оттачивать мастерство. Учишься на инженера - нужно разбираться в куче различных областей, иногда даже напрямую не связанных с основным направлением.
>>789097 > Как нам препод говорил Открою секрет - каста преподов - это хуже червей-пидоров, проткнутых и опущеных. В универчик идут работать преподами самые днища, которые никуда больше приткнуться не могут. Зато там они могут читать 1 час 45 минут хуиту с книжки и требовать ее записывать.
>>789112 Так и у них у многих еще какие-то основные или же наоборот второстепенные работы есть. У кого-то вообще собственные фирмы есть, связанные с тем направлением, на которое они учат. По крайней мере у нас так.
>>789129 То-есть с каждым обновлением весов расстояние уменьшается1/y^2 и t просто перестает существовать? Но как выходит так, что, например, у нас веса обновились 10 раз, расстояние сошлось. Как 10 может быть меньше или равно тому маленькому числу? С чем это связано? >>789136 Я не троллю, я реально не понимаю.
>>789137 Да просто были сомнения что суммировать, тельту ошибки или dW. Если бы дельту ошибки, то появился бы вопрос, а как именно. Еще немного сбило с толку, что было написано, что батчами вычислять быстрее(но в другом месте было уточнение, что только в параллельных вычислениях)
Что-то аноны, сегодня совсем хуево, начал читать эту вашу "Unlocked Python", так он что-то совсем не идет. Хотя написать перцептрон уже могу и понимаю, зачем и как нужны массивы в нем.
>>789739 Нет, там именно код дается, только все в очень странной форме, концепция не объяснена и написано косноязычно немного. Но оно уже и не особо нужно, я уже написал перцептрон.
>>789742 Да нет, все нормально. Просто надо по другому пути Питона изучать, эта отдельная хуйня, где говорится, что и как можно делать с разными вещами совсем не формирует общую картину и даже не запоминается никак.
>>789744 И кстати, в реализации простого перцептрона не надо импортировать целый класс pcn, достаточно только pcntrain переписать же. Просто в целом коде PyCharm находит ошибку
>>789766 Смотри сюда, ёбана. Есть граф. Есть вершины. Есть рёбра. Вершины - случайные величины. Рёбра - описывает условные зависимости между вершинами. То есть эта хуита позволяет добавлять структуру в данные (учитывать пространственную структуру изображений, вводить гладкие приоры в задачи предсказания и интерполяции, учитывать зависимость между симпотами болезней). Смотри лекции Воронцова кароч, а потом читай Бишопа с Мёрфи, у них там по несколько глав про сабж. Охуительная тема.
>>776147 (OP) Было предложение поработать c tensorflow для начала за сотню баксов в неделю, после того как я вкачусь в ml, но вкатится не хватило знаний и времени, ибо в ml вообще ноль. Предложение было действительно интересным и работодатель был из штатов, если бы получилось был бы очень хороший опыт + строчка в резюме.
Тред #2: https://arhivach.org/thread/170611/
Тред #3: https://arhivach.org/thread/179539/
Machine Learning 101:
1. Introduction to Statistical Learning ( http://www-bcf.usc.edu/~gareth/ISL/ISLR%20Sixth%20Printing.pdf )
Читается легко, неплохая разминка перед ESL
2. Pattern Recognition and Machine Learning, Bishop.
3. Bayesian Methods for Hackers. Введение в байесовские методы, годно.
4. http://neuralnetworksanddeeplearning.com
Введение в нейронные сеточки для самых маленьких. Написано простым английским.
5. https://yandexdataschool.ru/edu-process/courses - базовые курсы ШАДа.
Machine Learning Advanced
1. Elements of Statistical Learning (http://statweb.stanford.edu/~tibs/ElemStatLearn/printings/ESLII_print10.pdf )
Сложность - 9 из 10. Шутки в сторону, можно читать годами. Если вы сможете полностью проработать эту книгу и прорешать упражнения, обязательно свяжитесь со мной - у меня найдется работа для вас.
2. Optimization for Machine Learning. Edited by Suvrit Sra, Sebastian Nowozin and Stephen J. Wright, MIT Press, 2012.
Иногда from sklearn.linear_model import LogisticRegression перестает работать и тогда нужно все переписать. Оптимизация квадратичных приближений на больших объемах данных, разреженные модели, суррогатные оптимизации - вот это все тут есть.
3. http://www.cs.nyu.edu/~mohri/mlbook/
Как ESL, только слегка по-проще. Попробуйте, может зайти.
Дальше вас ждет дикий и необузданный мир. Два маяка https://vk.com/deeplearning и http://deeplearning.net/reading-list/ осветят дорогу: это списки литературы и обзоры статей для прощупывания пульса индустрии.
Computer Science
1. Introduction to Algorithms, Corman
2. The Art of Computer Programming, Knuth
3. Compilers: Principles, Techniques, and Tools. Разработчикам компиляторов и прочим авторам убийц питонов и крестов посвящается.
4. Введение в информационный поиск, Кристофер Маннинг.
Как работает поиск с теоретической точки зрения.
Programming
1. Python Unlocked. Короткая книжка без соплей. В ней описаны метаклассы, дескрипторы, системы типов, шаблоны проектирования и TDD. Всего чуть больше 100 страниц концентрированной сути.
2. Code Complete (2nd), McConnell.
Неплохая книга. Не то чтобы обдрочиться, но в голове всякие фишки по структуризации кода и его проектированию остались.
Misc
1. Telegram: @techsparks
Подкаст про всякие гик-штуки.
F.A.Q
По мотивам предыдущего треда.
Эти ваши книжки стоят овер 9000 рублей, как быть?
http://libgen.io
Книги хорошо, но с чего начать практический вкат?
Во-первых, вам нужна любая unix-based система. На Windows возможно запустить нижеперечисленное, но ждите пердолева с настройкой и неодобрительных взглядов анонимуса. Кроме того, в компаниях, так или иначе связанных с разработкой йоба-ПО и machine learningом, Linux/OS X является стандартом. Привыкайте.
Во-вторых, определитесь с языком. Python и C++ наиболее мейнстримовые инструменты, с ними вы без еды не останетесь. Есть еще R, на котором пацаны живут статистикой и анальными пакетами. Некоторые инструменты являются языко-независимыми (Vowpal Vabbit, XGBoost), но обвязывать их вы все равно будете из какой-либо среды.
На Java разработано много production-ready инструментов для бигдаты и если вы угораете по терабайтам данных, то имеет смысл посмотреть в её сторону. Впрочем, лучше это делать уже потом, когда прийдет осознание потребностей.
В-третих, выбирайте себе задачу. Что угодно: распознать качпу, обнаружить ботов по логам, найти раковых больных. Список можно посмотреть, например, на kaggle.com. После чего приступаете к решению выбранной задачи.
Не прийдется ли мне потом с таким наборищем знаний идти в макдак работать?
Несмотря на хайп вокруг ML, далеко не во всех IT компания есть необходимость в ML и понимание круга задач, которые можно решить этими методами. Но поверьте, в 2016 компетентный специалист будет востребован. В России потребителями ваших знаний могут стать: Яндекс, Mail.ru, Вконтакте, Rambler, Касперский, Билайн, Связной, ABBYY, Хуавэй. В биоинформатике есть определенный спрос, можно поскролить http://blastim.ru
Здорово, но я так и не понял чем же вы занимаетесь в IT компаниях?
Попытаюсь ответить со своей колокольни и сразу хочу предупредить, что это едва ли консенсуальное мнение.
ML-специалист - это такое зонтичное определение для человека, способного увидеть проблему, выгрепать кучу логов и данных, посмотреть на них, придумать решение проблемы и врезать это решение его в продакшн. По сути, это кодер, решающий не чисто технические, а, в некотором роде, человеческие проблемы.
Имхо, мы все же остаемся в первую очередь разработчиками.
Но ведь есть Machine Learning per se, чем он занимается?
Действительно есть. Одаренная прослойка людей изобретает новые методы, но это правильнее называть просто математикой. Сейчас пищей для ума являются нейронные сети и их возможные архитектуры, но даже они двигаются рука об руку с практикой.
Что такое TensorFlow?
TensorFlow - часть гуглового инструмента для перемножения тензоров и оптимизации функционалов. Часть - потому что важные куски типа параллелизации еще не выкачены в паблик. Если вам все ещё непонятно что это, значит это вам и не нужно, сириусли. Google перестарался с рекламой и теперь люди думают, что TF - это серебряная пуля и затычка для каждой бочки. До TF был Theano, который выполнял свою работу не хуже. И, в отличии от TF, он уже находится в стабильной фазе.