• Теория графов и нейронные сети в распознавании объектов - в чем преимущество графов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я попробую рассказать своё видение проблемы. Я не уверен что я прав но напишу как мне кажется.

    Есть две модели представления нейронных сетей.

    1) Матрицы (иногда называют тензоры). Имеют аппаратную реализацию в новых TPU (Tensor processor unit). Кажется Гугл сейчас продает услугу аренды таких сетей для задач обучения. Подходят для плотного заполнения нейронных слоём когда нейроны связаны каждый-с-каждым. При этом даже если связи нет (коэффициентик равен 0.0) тем не менее пространство все равно используется и этот ноль участвует в расчете.
    Расчет обучения (как я его себе понимаю) должен сводится к перемножению входного векртора на всю полседовательность матриц. И также к применению функции активации между слоями. Имеено за счет функции активации и идет обучение (там есть своя доказательная база) и идет декомпозиция на слои. Если бы функции не было - тогда можно было-бы все слои (константы) схлопнуть в 1 большую матрицу. Вот так и бегает умножение туда-сюда. Обучение - проверка ошибок. Коррекция. И снова обучение.

    2) Графы. Это вырожденный вариант матриц когда нулей оооочень много то чтоб зря не меремножать нули можно модель вычислений представить в виде графов. Математически это дает экономию в виде пропуска ненужных вычислений. И должна быть экономия в виде памяти для коэффициентов каждого слоя. На практике представить граф компактно очень сложно. Если кто из вас делал свои графы - то вы знаете что жрут они память как в не в себя, и никогда не угадаешь сколько надо выделить под вершину или под ребро чтоб не было пере-аллокаций и потерь.

    Если вы хоть раз открывали учебники по НС типа Каллана или Хайкина то там с первых страниц идет описание
    персептрона или 1-слойного нейрона в виде рисунка со стрелочками. Это и есть граф. Таки рисунки любят преподаватели в универах и всякие теоретики.

    В старых математических пакетах (еще в 80х годах) есть целые мат-библиотеки которые работают с разреженными матрицами (sparsed matrices). Это - тоже наивные попытки создать экономию. Такая дырявая матрица как раз отражает граф где вершины - это столбцы и строки а рёбра - это ненулевые коэффициенты.
    Реализаций их - целая куча. Математики любят решать системы дифуров в таких структурах. Там своя специфика. Тоже есть много нулей. Тоесть между графом и дырявой матрицей есть полиморфизм.

    Есть поддержка таких дырявых структур (Vector.sparse) и в биг-дате (Spark). Тоже для нужд ML.

    Тоесть если ваш нейрончик дырявый - то он полюбит графы и дырявые матрицы. Если он - плотняк
    заполнен коэффициентами - то берите обычные матрицы.

    Все что я написал это просто моё чортово ИМХО. И не стоит это воспринимать за правду.
    Ответ написан
    2 комментария
  • Как узнать сид фразу с binance?

    @nebolshoi_nuans
    Есть другой способ - но так делать нельзя - потому - что нелегитимно получится и нарушение законов известно какой страны: вкладываешь в тон коин пять миллирдов долларов, Потом пишешь всея разработчику, что ты вложил а выхлопа нет, ну и давай крутить - просишь слить всю личную инфу (предварительно собрав все данные - гмаил смс сим номера) пользователей чтобы мог двухфакторную их обойти прикинуться другим человеком, до выхода на ipo, ну и паспорта пользователей помогут нарисовать, конечно, это на канале ЛюдиPro рекламируют "мамкиных рисовальщиков", пробив по владельцу в "глазе бога" инфу - вроде потом сможешь и сид узнать - хоть он тебе и не понадобится уже
    Ответ написан
    Комментировать
  • На чем и как написать универсальный web сервер?

    @rPman
    web api на запись файлов и перезапуск служб.
    уверен что для этого нужно использовать СИ?

    в мире web бакэнда очень большую популярность имеет php - кроссплатформенный (идет по дефолту со всеми дистрибутивами, собран и поддерживается подо все платформы), самый быстрый интерпретируемый (буквально после 7-ой версии с ним сравнится только nodejs и то при условии кучи ограничений и за счет встроенной асинхронности), самый быстрый по разработке (особенно не сложных приложений и скриптов)

    теперь ложка дегтя
    перезапуск служб
    это вообще не про язык программирования, и способ зависит от выбора операционной системы и даже ее версии

    Скорее всего будешь запускать что то типа sudo service служба restart, само собой, настроив права доступа на запуск

    p.s. на самом деле истиной кроссплатформенности мало какая платформа даст, везде свои нюансы, например то что работает на linux в php, в windows не всегда заработает (например работа с пайпами, posix и куча плагинов), и выбор другого языка может не решить проблемы, тут вон предлагают java, исходники на нем многословные а привязка к операционной системе и железу там тоже присутствует, хоть и менее выраженная но все же попадается.
    Ответ написан
    Комментировать
  • Почему все прекращают поддержку 32-битных систем?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Потому что это мозговыворачивающий трах - поддерживать две линии библиотек. 32-битная адресация скоро останется только в микроконтроллерах.
    Ответ написан
    3 комментария
  • Как через JavaScript выводить всплывающие окна на сайт?

    Ответ написан
    Комментировать
  • Как устроены сайты по типу хабра?

    @rPman
    Ответы другими пользователями даны абсолютно верные

    Но хочу все же напомнить что вполне возможно существование веб сервиса который создает на каждую страницу реальный файл на диске при создании и редактировании поста как механизм кеширования (дублируя информацию с базой данных), так как современные веб серверы (nginx например) работают с таким файлами (это называется статичные файлы) невероятно эффективно, на порядок эффективнее чем делать это на лету при каждом запросе, так же он может быть заранее сжат (deflate, gzip, br) что позволит сэкономить еще и на сетевом трафике., да веб сервер и так это делал бы на лету, но за счет процессора.
    Ответ написан
    Комментировать
  • Как математически обоснована безопасность 6-ти подтверждений транзакции?

    @rPman
    1,2,..6 подтверждений - это абсолютно бессмысленная метрика.
    главная задача подтверждений - защита от двойной траты, т.е. атаки тех пулов, которые именно в этот момент нашли подряд несколько блоков (вероятность этого не нулевая, и прямо пропорциональна мощности пула, 100% она у пулов со 100% мощностью но уже при 50+% мощности пул может откидывать чужие блоки, тем самым обеспечить себе 100% контроль над сетью)

    Проблема в том что стоимость отмены транзакции для пула майнинга, обладающего меньше 50% мощности равна доходам от майнинга с отбрасываемых блоков. Допустим твой сервис принимает монеты от 1 подтверждения, значит пул-атакующий должен совершать сделки и на каждую майнить блок, в котором его перевод отменяется (направлен по другому адресу) с длиной цепочки 1 блок, и все провалившиеся попытки (а для пула с мощностью в 1% это будет 99% попыток) - это будут убытки этого пула, т.е. недополученная прибыль

    Понятно, что экономический смысл такой атаки есть только в том случае, если суммы отменяемых сделок выше стоимости потерь.

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

    количество подтверждений = int(Суммы, ожидающие сервисом на прием/Доход с одного блока майнерам)+1

    p.s. на самом деле все сложнее, атакующий может атаковать одновременно несколько сервисов (т.е. нужно брать суммы всех транзакций в сети минус исходящие переводы сервиса)
    Ответ написан
    Комментировать
  • Как устроена структура маркетплейса?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Нет таких статей.
    А то, что есть - полная фигня. Для нубов - это бесполезно из-за недостатка квалификации, а для настоящих технарей бесполезно потому, что они понимают, что там столько подводных камней из-за которых эту статью надо выбросить в топку.
    В маркетплейсах основное ядро - это логистика.
    Я там работал. Я через этот ад прошёл
    Ответ написан
    1 комментарий
  • Можно ли найти работу в линкед будучи в Москве Unity разработчику?

    GavriKos
    @GavriKos
    в HH ни в какую джуниором не берут

    ну в линкедине те же эйчары.

    поймать зарубежный заказ

    Если у вас такая же каша на собесе, как в этом вопросе - то нельзя. Акцент куда в вопросе? То на линкедин, то на москву, то на джуна, теперь откуда то еще и зарубеж.

    А так - нет, нельзя. Никто с рф теперь не работает - банально платить сложно. А т.к. вы даже местным не нужны - то никто не будет на себя брать отягощение из зарубежных
    Ответ написан
    6 комментариев
  • Почему так сложно майнить если nounce не больше 4 млрд?

    Ocelot
    @Ocelot
    Рискну предположить, дело в том, что для обработки блока с одним nonce требуется много операций хеширования. SHA-256 "ест" по 512 бит за раз, а размер блока около мегабайта. Плюс в BTC считается двухкратный хеш SHA-256(SHA-256(Data)).
    Но даже с учётом всего этого цифры не сходятся где-то на 2-3 порядка.

    UPD. Нашёл. Помимо nonce, в блок ещё входит timestamp. Его можно менять в довольно больших пределах, не нарушая валидности блока (он должен быть больше, чем медиана времени предыдущих 11 блоков и меньше, чем средне-сетевое время +2 часа). Прогнав весь диапазон nonce и не получив красивого хеша, майнер немного меняет timestamp и прогоняет весь диапазон nonce заново. А потом снова и снова, пока не попадёт.
    Весь диапазон валидных timestamp почти 3 часа ~10^4 секунд. Теперь вроде сходится.
    Ответ написан
    Комментировать
  • Нужен совет опытных WEB разработчиков?

    krdpsr
    @krdpsr
    loading...
    пойми, нет другого пути кроме как изобретать свое приложение

    ничто другое это не заменит
    Ответ написан
    Комментировать
  • Как освободить пространство с LVM?

    @rPman
    Настучать бы тем кто дает советы дробить ОДИН диск на разделы и раскидывать файловую систему linux по нему, причем используя lvm который тут ну совсем не нужен.

    Настоятельно рекомендую избавиться от этой формы разбиения диска, сделать резервную копию всего корня / диска (tar, например сделав отдельно для каждого раздела, добавив ключ --one-file-system) и удалить lvm. Абсолютно все фичи, которые дает lvm можно получить с помощью btrfs или zfs, при этом это будет еще и быстрее (снапшоты у этих cow файловых систем бесплатные, а у lvm за 2х понижение записи)

    настоятельно рекомендую следующий конфиг:
    gpt таблица разделов
    * 1Мб biosboot - раздел нужен если используешь legacy mbr в биосе
    * 100Мб EFIboot - раздел нужен если используешь UEFI secure boot в биосе
    * 512Мб ext4 /boot - раздел не обязательный, нужен только если используется нестандартная фйловая система или странные конфиги (типа bcache ssd кеш для hdd), так же он нужен для дисков больше 2Тб
    * сколько надо btrfs / - раздел куда установишь систему
    благодаря btrfs можно точно так же наклепать в нем виртуальных разделов для /var /home /tmp причем можно даже не указывать лимиты (будет использоваться общее место)

    btrfs прекрасно умеет grub и не считается экзотикой (/boot раздел не требуется)

    p.s. кстати, если загрузчик grub можно установить на другой диск (например карта памяти или другой диск), то системный диск nvme даже не придется разбивать на разделы и использовать буквально весь под файловую систему

    p.p.s. btrfs мощная файловая система но настоятельно не рекомендую использовать его raid5, он еще нестабилен, хотя критичных багов, ведущих к потере данных нет, но есть сообщения о потерях свободного места в экзотических ситуациях

    для софтварного рейда лучше пользоваться mdadm
    Ответ написан
    Комментировать
  • Как правильно находить готовые коды, плагины на разных языках?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Мда. С такой грамотностью далеко не уйдёшь... ПредпрИниматель...
    Я дам простой ответ - предприниматель сам должен уметь находить ответы на вопросы, которые ты здесь задаёшь.
    Ты занимаешься не своей работой."Куски кода искать" должен не руководитель, а разработчик, это его работа и его профессия, за это ты платишь ему деньги
    Ответ написан
    5 комментариев
  • Актуален ли рынок программирования микроконтроллеров?

    @VT100
    Embedded hardware & software.
    Для микроконтроллеров - надо знать ещё, как минимум, цифровую и аналоговую электронику. Потому что их программы сильно зависят от аппаратуры.
    Ответ написан
    5 комментариев
  • Почему не получается преодолеть барьер в изучении программирования?

    @k4nt
    Здравствуйте.
    Я так же, как и Вы учусь программировать. Лично мне никакое изучение материала не давало результата.
    Только когда у меня появилось к чему приложить свои знания (я сам придумал себе интересный проект и делаю его) у меня появилась больше мотивации в изучении.
    Я не смотрю курсы, не читаю литературу. Я заполняю нужные мне пробелы в знаниях исходя из практики. Да, явно с точки зрения специалиста у меня всё криво, можно лучше и тд, но знания гораздо лучше остаются в моей голове и мотивация падает только тогда, когда я упираюсь во что-то сложное для себя. Пару дней голова поварит, я соберу нужные знания и снова продвигаюсь к реализации своего мини проекта.
    Ответ написан
    2 комментария
  • Что почитать про программирование под Линукс?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А под линукс как-то особенно программировать не требуется. Наоборот можно уже писать кроссплатформенно.
    У винды много своей специфики, связанной со странными особенностями файловой системы, с выкрутасами в плане использования кодировок в терминале, в файловой системе, в остальных местах... Когда начинаешь кодить на линукс и под линукс, то аж дышится легче.
    Начинаешь думать, что интерфейсы можно делать не нативно, а в виде веб-интерфейсов, которые отлично смогут работать и в облаке, и прямо на роутере, и локально.
    В линуксе гораздо проще и каноничнее всё с доке-контейнерами, стандартной является вся инфраструктура командной строки, свзанная с механизмами автоматизации: стандартные тулзы, make, системы управления пакетами...
    Поднять на линуксе изолированную повторяемую среду получатся гораздо проще, чем в винде.

    Вообще не понятно, конечно, о каком програмировании речь. Тут и системное программирование упоминалось, и GUI...
    По собственному опыту скажу, что сомнения при переходе на разработку под линукс в основном надуманные и ненужные. Переход происходит естественно и непринужденно.
    Особенно подкупает встроенная в систему хорошая документация и огромное количество структурированной информации в сети. Даже книг каких-то специальных читать не пришлось. Просто по обстоятельствам ищем статьи и мануалы по конкретным темам: особенности и устройство файловой системы, пайпы, потоки, процессы, система прав доступа...
    Ответ написан
    1 комментарий
  • На каком этапе обучения стоит учить ООП?

    @evgeniy_lm
    ООП это не стихотворение, его учить не нужно. Объектная модель это способ мышления человека. Т.е. если вы человек то использование ООП для вас будет проще, чем другие варианты, ну если вы рептилоид то вам стоит пообщаться на эту тему со своими братьями по разуму.
    Ответ написан
    Комментировать
  • Как проверить гипотезу веб-сервиса с наименьшими потерями?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Имеется идея проекта в виде готовых дизайн прототипов
    вот это уже пугает. Почему ?
    У меня тоже есть дизайн прототип
    А вот понимания как будет происходить обратка на стороне приложения и серверной части пока нет.

    Может все таки попробуете написать техническое задание на реализацию и попросите сперва оценить реализуемость и примерную стоимость знакомых разработчиков ?

    Получили цифру. Например $100k.
    Монетизация несколькими тарифными планами. Берем Дешевый * 0,8 + Дорогой * 0,2 = приблизительный средний чек.
    Делим стоимость разработки на него (например на 2 доллара) = 50 тысяч покупок
    умножаем на 120 = 6 000 000 установок
    Суммарная ЦА больше этого числа ?

    Прикидываем фокус группу
    проводим опрос. Если заинтересовавшихся в процентном отношении достаточно, есть смысл пилить.

    А на лендинг да еще из рекламных сетей - ботоводы нальют вам трафика с нужными поведенчискими характеристиками, так что Вы будете считать, что поймали бога за бороду
    Ответ написан
    Комментировать
  • Какой фреймворк выбрать для создания многостраничного сайта?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Не нравится мне ваш подход.
    Сайт создается с определенными целями
    их нужно обозначить,
    Дальше на основе имеющихся специалистов выбрать нужные технологии
    Дальше подобрать набор утилит
    И потом просто реализовать этот проект
    Ответ написан
    7 комментариев
  • Какая скорость интернета по интернетометру?

    В одном байте 8 бит.
    93,25 / 8 = 11,66
    Ответ написан
    Комментировать