• Зачем продают оборудование для майнинга?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    >если могут заработать на нем больше
    в том то и дело, что это все вилами по воде писано, сейчас могут заработать, а завтра это все 0 будет стоить.
    Ответ написан
  • Как перестать кодить и начать программировать?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Начните больше читать чужой код, особенно разные популярные библиотеки, участвуйте в опен соурс проектах.
    Ответ написан
    3 комментария
  • Можно ли быть хорошим программистом и плохим олимпиадником?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    В прикладном программировании ТРЕБУЮТСЯ понимания алгоритмов и структур данных, а также умение искать эффективных решений.
    Хороший разработчик гарантированно может решать олимпиадные задачи - пускай не самые сложные, но по крайней мере на реализацию, и задачи со среднем уровнем сложности.
    Выдающихся результатов именно в спортивном программировании, для хорошего разработчика НЕ требуется, но все равно решать часть олимпиадных задач он гарантированно может, хотя бы на среднем уровне.
    Ответ написан
    Комментировать
  • Какие знания необходимы для изучения нейронных сетей?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    базовых школьных знаний, как правило достаточно.
    Ответ написан
  • Как определить точку, в которой можно поймать мяч?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    ну тебе нужно сначало описать модель движения для мяча и футболиста (зная их параметры, скорость ускорение, начальные координаты)
    потом выразить прогнозируемые координаты через вектор скорости умноженный на время
    затем решить общую систему линейных уровнений
    грубо говоря:
    неизвестная конечная координата мяча = векторная скорость движения для меча * время движения мяча
    неизвестная конечная координата для игрока = векторная скорость движения игрока * время движения игрока
    -----------
    варьируя неизвестные параметры (времени, и направления движения) ты можешь найти условия при которых неизвестные координаты для меча и игрока совпадают (при условии равном времени движения).
    Ты можешь иметь множество решений, выбирай то которое позволяет тебе минимизировать параметр времени встречи мяча и игрока.
    Ответ написан
    Комментировать
  • Машинное обучение - это работа для "ученых" или программистов?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Сейчас есть инструменты для разных категорий пользователей.
    Если ты ученый, для тебя есть возможности по исследованиям и эксперементам.
    Если ты разработчик, есть фреймворки и исследования на базе которых ты можешь заниматься разработками.
    Есть ты домохозяайка, есть полностью готовые решения, где задача только развернуть и приконектить друг к другу готовые части.
    Работа есть для любой категории пользователей -> определяешься с кругом задач, и двигаешься в выбранном направлении.
    Ответ написан
    1 комментарий
  • Классификация больших текстов через обучение с учителем - какие подходы существуют?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    А какой смысл вам переживать, получится или не получится? начните делать, хуже от этого никому не будет.
    По поводу подводных камней, само собой если вы принимаете за фитчу (сигнал), в нейросети например 1 слово, то увеличивая количество слов вы усиливаете этот сигнал - тексты где больше слов будут выдавать большие значения сигналов, где меньше слов - меньшие значения, поэтому вам нужно использовать нормализацию этих сигналов, грубо говоря например делить размер сигнала на количества слов в тексте, для каждого текста (ну и так будет "честнее" сравнивать, тексты разного обьема).
    По поводу падежей, родов - для этого используют стемминг, предварительную очистку текста от такой специфики (приведение текста в нейтральный вид). По поводу английский или русский - разницы никакой (только спемминг нужно под русский сделать), само обучение не имеет разницы.
    Для обучения по текстам, можно даже компьютеры из 90х использовать, все будет работать.
    Ответ написан
    7 комментариев
  • Изучение нейросетей или углубление в Python?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    предположу что такие вопросы (куда двигаться), связанны с непонимание зачем двигаться.
    нужно определиться для чего вы что-то изучаете, советую начать решать какие-то прикладные задачи, начать писать свои проекты, или участвовать в чужих интересных опен соурс проектах на гитхабе, в любом случае начать прорабатывать вполне конкретные задачи, возможно окажется что нейросети вам особо и не нужны будут (как бы не был заманчив окружающий хайп, в машинном обучении есть множество других методов успешного решения задач), может даже и питон особо не нужен будет. Может вам больше нужны конкретные проекты, и опыт решений прикладных задач.
    Ответ написан
    Комментировать
  • Каков принцип подбора весовых коэффициентов при обучении искусственной нейронной сети?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    классический подход принимает нейросеть как данность, архитектуру (количество слоев, решающая функция, взаимодействие между слоями), задается создателем, при обучении только "подгоняются" коэффициэнты под выбранную архитектуру.
    Веса НЕ сводятся к средним значениям, можно конечно усреднять но это бессмысленно (на что усреднять? в случаях с фотографий например на количество пикселей (входящих сигналов) чтоли? -> но фото подгоняют под определенные стандарты где все фотографии имеют одинаковое разрешение (одинаковое количество пикселей), поэтому это лишнее деление на константу, которое можно отбросить, если же усреднять на количество примеров -> то это просто приведет к тому что при увеличении выборки любой результат будет стремится к нулю)
    более того в обучающихся данных НИКАКИХ коэффициэнтов нет, в выборках есть сигналы (например пиксель, есть или нет - один или ноль), на эти сигналы мы никак не влияем, все что мы можем сделать:
    взять какую-то "решающую функцию" (например сумму всех входящих сигналов умноженных на неизвестные коэффициэнты) и решить при каком значении решающая функция будет отвечать нам "да" или "нет", например на вопрос это КОТ на фото? -> при сумме коэффициэнтов помноженных на входящий сигналы (на еденицу или ноль) и результат будет например больше 10, если больше 10 - то КОТ, меньше 10 - НЕ КОТ.
    а дальше - мы можем подбирать веса таким образом чтоб при выбранной "решающей функции" получать как можно чаще правильные ответы (при этом не важно что мы взяли за "отсекающее значение результата" для разделения на ДА ИЛИ НЕТ, значение 10 или 100000, мы тутже подгоним коэффициэнты таким образом чтоб это все равно работало, коэффициэнты в последнем случае по размеру лишь будут в 10000 раз больше).
    Ответ написан
    Комментировать
  • С чего начать обучение бота на нейронной сети?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    вы должны понимать зачем вам нужно использовать именно нейронную сеть.
    Вам лучше с самых азов зайти, кого обучать, как обучать и тд.
    например упростить задачу до обучения "футболиста" в качестве "автономного агента", на основе конечного автомата, у которого есть состояние (окружения и его самого) и есть действия - и вы пробуете разные комбинации этих состояний и действий.
    Например вы можете описать состояние футболиста как расположение мяча (справа слева впереди, впереди-справа, впереди слева и тд) - сопоставляешь этому состоянию отдельноое действие (движение вправо, влево и тд), дополнительно можешь сопоставить например расстояние до мяча.
    например мяч вверху-слева дистанция 10 ячеек -> действие агента -> движения прямо
    мяч справа слева дистанция 2 ячееки -> действие агента -> движение влево.
    в итоге у тебя получается записанные сопоставления состояниям и действиям.

    для того чтоб обучать оптимальному поведению тебе нужно вводить функцию оценки результата после действий, награждать (запоминать), действия которые приводят к увеличению результата, и отказываться от действий которые снижают результат.
    результатом может быть например 1/"расстояния до меча"
    в начале запускаешь агента с рандомными переборами взаимодействий между состояниями и действиями. Потом более менее обученных двигаться, запускаешь играть друг против друга например в футбол и тд.
    добавляешь к результату оценку результата матча и тд.
    можно использовать генетический алгоритм для более быстрого поиска оптимальных параметров конечного автомата, можешь попробовать потом нейросеть прикрутить. Можешь на основе статистики готовой какие-то выводы сделать (но у тебя статистики я так понимаю никакой нет, так что тебе все равно прийдется обучать бота, играя друг против друга, и перебирать случайные варианты).
    Ответ написан
    6 комментариев
  • Нужно ли учиться в школе?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    предыдущий вопрос про универ отличался тем что чувак не тянул, и спрашивал, мол забить ли раз не тяну материал.
    Текущая постановка вопроса говорит о том что чувак тянет обучение, но спрашивает на чем лучше сфокусироваться.
    Мое мнение - если чуствуешь что CS это твое, и тебе нужно сфокусироваться еще больше для того чтоб добиться больших успехов, то так оно и есть, действительно если ты сфокусируешься только на программировании там ты больше успехов добьешься, и по ходу дела тебе прийдется в рамках обучения программированию освоить математику и туже физику но уже в рамках программирования например графики, игровых движков либо анализа данных.
    Мой совет -> да забить и сфокусироваться на важных для тебя вещах.
    Когда нужно будет например аттестат получить, или еще что, вернешься к школьной программе, и под требования министерства образования, сдашь что там они требуют это егэ или что-то там еще.
    как бы суть такая, что не так важна очередность, важнее мотивация чем-то заниматься, будет желание вернутся к школьной программе, тогда вернешься, сейчас пока от CS прет, нужно туда и двигаться.
    А то что нужно например именно в 16 лет школу закончить, на мой взгляд устаревшие подходы.
    Я если бы для себя выбирал, вообще бы в школу не ходил, занимался бы самообучением, толку больше вышло бы (но это не для каждого конечно).
    Ответ написан
    Комментировать
  • Можно ли до конца почасового контракта снимать деньги, полученные по этому контракту?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    ой да с чего запросит возврат, сам же говоришь пришли к соглашению + тебе оплачивают же по часам а не сдельно.
    не парься снимай. (клиенту вообще пофигу когда ты их снимаешь).
    Ответ написан
    Комментировать
  • Появится ли такой тип программиста?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    массово скорее всего никто не будет переписывать код только для того чтоб он был покрасивее, жизненный цикл продукта и его отдельной версии очень короткая, бесполезная трата ресурсов.
    Ответ написан
    Комментировать
  • Какой запрос быстрее отработает?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    1. ну вобще если железо позволяет, то паралельно будет быстрее работать.
    твердотельные диски в несколько потоков позволяют быстрее данные читать.
    2. встроенные механизмы работы БД как правило быстрее работают, чем собирать эту логику самому, Монго позволяет хранить "ссылочные" данные (которые при запросе сами загружаются из других таблиц).
    3. Плюс монги в том, что можно все ответы просто пихать в коллекции. Например у вас одна база с какими-то данными, а другая база данных с этими данными но уже организованная по другому принципу, в которой например находятся все ответы, все взаимосвязи и тд, попробуйте реализовать еще одну базу, с заранее подготовленной агрегаций всех необходимых данных.
    Ответ написан
    Комментировать
  • Изучение математики через программирование, глупое решение?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Я уверен что именно за таких подходом будущее (изучение например математики и физики через программирование). Описание процессов хорошо перекладывается на язык программирования. Сам язык "программирования" в отличии от классического языка "алгебры" например, имеет более прикладное и практическое применение, хотя фактически оба языка делают тоже самое -> тоесть описывают процесс/модель/взаимосвязи.
    я например за собой тоже заметил, что для меня описание на языке программирования куда понятнее и яснее чем язык математики (просто изза того что я реже им пользуюсь, и хуже его понимаю)
    При этом создавая программу, для решения например каких-то задач, я куда нагляднее вижу что и как происходит, могу проследить самостоятельно где у меня ошибка и тд.
    Я уж не говорю о моделировании физических процессов.
    Вменяемое понимание физики у меня пришло только через программирование разных игровых ботов и процессов.
    ======
    По поводу процесса написания кода.
    Если задача простая то у меня обычно сразу появляется план в голове, ну или минут через десять например.
    В виде примерной схемы решения. Эту схему сразу набрасываю в коде, в виде абстракций, без четкой реализации, потом начинаю прорабатывать реализации.
    Все схемы взаимосвязей (ониже формулы) стараюсь визуализировать в голове без бумажек (так быстрее и удобнее). Но иногда что-нибудь на бумажке набрасываю, если не могу в голове все представить.
    Язык математики мало использую (только для описания простых взаимосвязей, типа там а=2б и тд), но вот передовые исследования приходится читать на математическом языке, что признаюсь дается мне с трудом. Но меня это не парит, тк всеже я программист а не математик - у меня первично программирование и разработка программных решений, а не написание статей в научные журналы.
    Ответ написан
    Комментировать
  • Изучение анализа данных: какой путь выбрать?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    матан/тер вер - везде одинаковый, не имеет значения где ты его осваиваешь.
    Важно умение решать задачи, решай больше прикладных задач и будет тебе счастье, все эти связи/шильдики херня на постном масле, не стоит замарачиваться. Ну хочешь поступить в ШАД поступай, итоговый результат, будет такойже (другого и не может быть, наука везде одинаковая)
    Ответ написан
  • Как защитить rest api?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    классический подход вместе с запросом отдавать данные которые однозначно идентифицируют пользователя (логин пароль с каждым запросом не передают, тк это потенциальная возможность подслушать эти данные, ну и проблема с производительностью, придется на каждый запрос сверяться с базой данных пользователей, что очень накладно)
    обычно для идентификации пользователя сервис при входе создает специальный "ключ" (который пользователь хранит у себя и передает в сервис при каждом запросе).
    раньше для этих целей активно использовали сессии, которые сервер хранил у себя в памяти и сверял введенные данные с этими сессиями - но там множество проблем с маштабируемость и производительность, поэтому сейчас активно используют так называемые "токены"
    в таком токене зашифровано хранятся данные о пользователе, при получении токена сервер расшифровывает находящиеся там данных, ни с чем их у себя не сверяет и НЕ ХРАНИТ, в этих расшифрованных данных конкретно указывается есть ли у пользователя права доступа или нет.

    токены эти могут передаваться на сервер в запросе в качестве параметра:
    хттп://сайт.ру/данные.жсон?токен=ваш_токен

    но такой способ считается плохим тк токены остаются в истории браузера например (ну и гет запросы обрезают длинну возможной ссылки)
    наиболее подходящим способом считается передача токенов в заголовке запроса

    подробнее о токенах советую посмотреть тут: https://jwt.io/introduction/
    Ответ написан
    Комментировать
  • Короче, школьник, 9 класс, Хочу быть программистом. Изучаю основы. Но с математикой и физикой ну очень туго. Что делать? Или универ не нужен?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    если ты математику в 9 классе освоить не можешь, то быть программистом это точно не для тебя.
    либо учишься решать задачи (не только по математике) , либо пополняешь ряды менеджеров по продаже какого-нибудь дерьма.
    Ответ написан
    7 комментариев
  • Как правильно называется вакансия?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    Полно технологий из 90х, которые были действительно популярны и удобны, когда экосистемы языков были не до развиты.
    По сравнению с языками общего назначения, конечно R был, очень удобен, но сейчас не 90е.
    Сейчас любой язык общего назначения позволяет делать ТОЖЕ самое, ТАКЖЕ просто (через библиотеки и фреймворки), но при этом обладает большей гибкостью, производительностью, и решает куда более широкий спектр задач.
    Если вы УЖЕ знаете R - то можно его использовать и решать на нем задачи, если же вы только НАЧИНАЕТЕ решать математические задачи, то лучше сторонится этого языка.
    R отлично решал проблемы в прошлом, но в 2017 году он программистам врядли нужен. Может домохозяайкам, которым что-то нужно мощнее экселя, которые например в таргетинг рекламы лезут. Программистам всеже лучше сразу затачивать решения используя -> питон, ноду, скалу, ну или хотябы джава.
    Ответ написан
    Комментировать
  • Какая операция наиболее времязатратная на CPU?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    все эти математические операции в циклах, очень хорошо оптимизируются самим железом, даже если вы отключите оптимизацию в компиляторе.
    поэтому самая дорогая операция - не предсказуемая, условный переход от случайных данных отлично подходит под это, процессор не сможет точно предсказать этот условный переход.
    ну а блокирующие операции эмулируются просто слипами.
    Ответ написан
    Комментировать