Pull to refresh
-10
0
Сергей @tac

Программист

Send message

3D на рабочий стол Windows (+исходники)

Reading time2 min
Views91K
3D модели на рабочем столеС Рождеством дорогие Хабравчане!

Хочу бескорыстно поделиться своим скромным проектом.

Основные возможности:

  • вывод 3D графики (модели, сцены) на рабочий стол Windows;
  • переход в скринсейвер и обратно;
  • импорт моделей;
  • установка последнего 3D кадра картинкой рабочего стола;


Ну и что дальше
Total votes 97: ↑87 and ↓10+77
Comments35

Дарвиновская эволюция бактерий — полная картина

Reading time8 min
Views18K
Я начну с провокационного заявления — «биологи не публикуют детали своих исследований». Казалось бы столько статей, столько исследований… но где описание и детализация информации, которая получена? Её в принципе нет. А статьи без такой информации пусты и спорны. Каждый нахваливает свой метод, но много ли кто озаботился верификацией чужих данных, а главное смог ли он её сделать?

Можно лишь приветствовать появление таких биоинформационных баз как NCBI genomes и PDB, в которые исследователи помещают данные о секвенированных геномах и структурах РНК, белков. И главное, некоторые ученные прежде чем опубликовать статью, прежде помещают данные в биоинформационные базы.

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

Конечно, так оно выглядит только для таких дилетантов как я. У настоящих же профессионалов все как в аптеке. Поэтому можете не утруждать себя ответом на эти пафосные заявления. Мы просто поговорим как выглядит биоинформатика в её частных областях глазами дилетанта. Но может и вас эта история к чему нибудь побудит.

Мы поговорим ниже о построение дерева эволюции согласно Дарвину, посмотрим на сколько это справедливо и таки я в итоге дам полное дерево (в рамках имеющейся информации) эволюции бактерий на основании самых консервативных генов тРНК. И дам пояснение о методе построения такого дерева.

Специалистам в биоинформатике рекомендую читать с раздела №5, пропустив весь мой пафос.

Читать дальше →
Total votes 39: ↑26 and ↓13+13
Comments47

Обзор алгоритмов кластеризации числовых пространств данных

Reading time10 min
Views42K
Задача кластеризации – частный случай задачи обучения без учителя, которая сводится к разбиению имеющегося множества объектов данных на подмножества таким образом, что элементы одного подмножества существенно отличались по некоторому набору свойств от элементов всех других подмножеств. Объект данных обычно рассматривается как точка в многомерном метрическом пространстве, каждому измерению которого соответствует некоторое свойство (атрибут) объекта, а метрика – есть функция от значений данных свойств. От типов измерений этого пространства, которые могут быть как числовыми, так и категориальными, зависит выбор алгоритма кластеризации данных и используемая метрика. Этот выбор продиктован различиями в природе разных типов атрибутов.

В этой статье приведён краткий обзор методов кластеризации числовых пространств данных. Она будет полезна тем, кто только начинает изучать Data Mining и кластерный анализ и поможет сориентироваться в многообразии современных алгоритмов кластеризации и получить о них общее представление. Статья не претендует на полноту изложения материала, напротив, описание алгоритмов в ней максимально упрощено. Для более подробного изучения того или иного алгоритма рекомендуется использовать научную работу, в которой он был представлен (см. список литературы в конце статьи).
Читать дальше →
Total votes 45: ↑41 and ↓4+37
Comments10

Систематика прокариот — дальние родственники

Reading time4 min
Views13K
Еще летом я запланировал эксперимент и написал статью Использование UML для эксперимента по эволюционной систематике прокариот, и косвенно о психологии ученых. Результаты по грубой обработки уже были готовы к концу лета (спасибо, mktums за помощь ).

Вот теперь образовалась пауза, и я добил эту тему, и представляю результаты.

Читать дальше →
Total votes 42: ↑31 and ↓11+20
Comments100

JNA: callbacks to Java

Reading time2 min
Views25K
Мне понадобилось подключить наш проект на Яве к старой библиотеке на C. Одной из проблем было, что эта библиотека требует регистрации колбеков (callbacks), которые вызывает по ходу работы, и которые, я хотел бы имплементировать на стороне Явы.

JNI позволяет это всё делать, но муторно. Есть прекрасная библиотека JNA как замена JNI я хотел воспользоваться ей.
К сожалению сайт JNA сейчас пуст — они переезжают с сервера на сервер, статьи по JNA не показывают пример callbacks, поэтому пришлось повозиться немного, чтобы сделать работающий пример.

Этот пример и хочу показать — может кому то приходится.

Начинаем со стороны C:

my.h
typedef  void (*callback)(char *, char*);

int myfunc(char *);

void registerCallback(callback myc);


Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments24

Используем любой шрифт с Javascript.

Reading time3 min
Views24K
Все мы знаем прекрасные библиотеки sIFR3 и FLIR, которые на лету помогают использовать любой шрифт на веб-страницах.
Правда, с моей точки зрения, их использование (а именно установку и настройку) нельзя считать легким трудом.

Сегодня я расскажу о библиотеке Typeface.js, которая, как видно из названия, работает на чистом JavaScript.

Читать дальше →
Total votes 125: ↑119 and ↓6+113
Comments44

Алгоритм обратного распространения ошибки с регуляризацией на c#

Reading time14 min
Views85K
Привет. Я хочу продолжить тему реализации методов машинного обучения на c#, и в этой статье я расскажу про алгоритм обратного распространения ошибки для обучения нейронной сети прямого распространения, а также приведу его реализацию на языке C#. Особенность данной реализации в том, что реализация алгоритма абстрагирована от реализаций целевой функции (той, которую нейросеть пытается минимизировать) и функции активации нейронов. В итоге получится некий конструктор, с помощью которого можно поиграться с различными параметрами сети и алгоритма обучения, посмотреть и сравнить результат. Предполагается, что вы уже знакомы с тем, что такое искусственная нейросеть (если нет, то настоятельно рекомендую для начала изучить википедию или одну из подобных статей). Интересно? Лезем под кат.

Читать дальше →
Total votes 38: ↑31 and ↓7+24
Comments46

Развитие RNAInSpace, алгоритм CRA, проблемы кода на Linux и прочие

Reading time5 min
Views3.2K
Что-то давно не писал, вот решил написать промежуточную статью о развитии RNAInSpace. Первый этап статей собран в Получена траектория сворачивания вироидного рибозима или новости с фронтов при использовании ПО RNAInSpace. Попробуем начать второй этап.

Второй этап я собирался начать со сворачивания тРНК. Тут оказались некоторые проблемы. С другой стороны, есть интересный алгоритм CRA, который должен помочь решить мне эти проблемы. Он сложный и я его не понимаю. Но он реализован в некоторых ПО в основном для Linux. Что есть большое фи. В общем обо всем по порядку.

P.S. Ищу тех кто понимает математику и сможет помочь мне разобраться с алгоритмом CRA. С другой стороны, нуждаюсь в помощи тех кто использовал Gromacs.

Читать дальше →
Total votes 12: ↑6 and ↓60
Comments32

Space Engine — Вселенная на ладони

Reading time8 min
Views99K
My God, it's full of stars!
Arthur C. Clarke

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

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

Но вот, чуть больше года назад, я совершенно случайно наткнулся на вселенную Space Engine, и она просто взорвала мне мозг и размазала его по полу своим масштабом и невероятной детализацией.
Читать дальше →
Total votes 195: ↑190 and ↓5+185
Comments88

Получена траектория сворачивания вироидного рибозима или новости с фронтов при использовании ПО RNAInSpace

Reading time5 min
Views2.3K
Пару месяцев назад я рассказывал о приближенных результатах в задаче о сворачивании РНК. Напомню требуется свернуть вироидный рибозим NC_003540 организма Chrysanthemum chlorotic mottle viroid, третичная структура которого неизвестна.

И вот оно свершилось — рибозим свернулся ! (В нем образованы все имеющиеся водородные связи)

Смотрим его конечное состояние, а под катом еще его траекторию сворачивания, а также подводим итоги.



Читать дальше →
Total votes 75: ↑63 and ↓12+51
Comments123

Понятие о структурной адаптации и введение в «чистое обобщение»

Reading time7 min
Views14K
Продолжим серию статей «ИИ для чайников». Если в прошлой статье мы попробовали отграничить людей, решающих задачи «оракулов сильного ИИ» от задач «слабого ИИ», и показать решение какого рода задач дает больше, чем лирические «откровения». Одну из таких задач мы назвали «задача двух учителей».

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

Читать дальше →
Total votes 11: ↑6 and ↓5+1
Comments21

Резюме проблемы «двух и более учителей» и субъективное мнение о ИИ-сообществе

Reading time9 min
Views5.2K
Пока я тут излагал мысль она несколько растеклась по статьям

1. Модель функционального разделения сознания и бессознательного. Введение
2. Модель проявления сознания или ИНС без эффекта забывания
3. Проблема «двух и более учителей». Первые штрихи
4. Обучение с подкреплением на нейронных сетях. Теория

казалось аудитория имеет нужные знания, все таки у нас цвет общества — программисты :) Но увы… последний опрос показал, что далеко не все программисты в курсе ИИ-проблематики. А хамоватые студенты набежавшие на эти статьи в комментариях — еще не доучились.

Попробуем подытожить и считайте это расширенная статья обещанная в опросе. А заодно мне сказали, что в ИИ-сообществе есть серьезные проблемы. После ряда комментариев — да видимо действительно есть. Попробуем посмотреть на тенденцию.

Читать дальше →
Total votes 34: ↑21 and ↓13+8
Comments131

Обучение с подкреплением на нейронных сетях. Теория

Reading time4 min
Views26K
Я тут написал статью Проблема «двух и более учителей». Первые штрихи, пытаясь показать одну сложную нерешенную проблему. Но первые штрихи оказались немного за сложными. Поэтому я решил для читателей немного разжевать теорию. Увы, сейчас видимо учат/(учатся ?) несколько шаблонно — типа как для каждой задачи свои методы.

Так мне указали, что для задачи классификации — нейронные сети (обучение с учителем), генетические алгоритмы (обучение без учителя) — задача кластеризации, а еще есть обучение с подкреплением (Q-обучение) — как задача агента, который бродит и что-то делает. И вот такими шаблонами многие и судят.

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

И заодно проанализируем диссертацию Бурцев М.С., «Исследование новых типов самоорганизации и возникновения поведенческих стратегий», в которой не больше не меньше красиво сделано именно применение простеньких нейронных сетей в задаче обучения с подкреплением.
Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments26

Проблема «двух и более учителей». Первые штрихи

Reading time5 min
Views4.4K
В двух предыдущих статьях я по касательной затронул проблему, которую назвал проблемой «двух и более учителей»:

1. Модель функционального разделения сознания и бессознательного. Введение
2. Модель проявления сознания или ИНС без эффекта забывания

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

Тут я покажу, как я впервые встретился с этой проблемой еще начиная с 2006 года, но теперь точно такая же проблема явно видна и при решении биоинформационной задачи сворачивания РНК (про это я тоже написал серию статей, последняя в которой есть все ссылки ). Внешние описание этих задач существенно разное, но в этом и прелесть — проблема возникает не зависимо от задачи, и кажется есть важный аспект, который просто надо уметь решать говоря об интеллектуальных методах.

Было время, когда я был фанатом игры в Цивилизацию. Надо сказать, что её первые версии были наиболее интеллектуальны, а в версии после Civilization II: Test of Time можно вообще не играть — они испортили важную интеллектуальную начинку. Поэтому совсем не удивительно, что ниже я предложу компьютерно сыграть в этюд по этой игре.

Важно отметить, что устраивают турниры с подобными сценариями, например, ICFPC 2012 с краудсорсингом и нейронными сетями, играя в игру Supaplex. Это тоже интересная задача, но в ней не возникает проблемы «двух и более учителей». Поэтому цель этой статьи понять когда же эта проблема возникает.

upd. Кажется, первые штрихи оказались несколько сложноваты. Прошу для понимания прочитать предваряющую статью Обучение с подкреплением на нейронных сетях. Теория.

Читать дальше →
Total votes 21: ↑12 and ↓9+3
Comments76

События .NET в деталях

Reading time9 min
Views151K
Если вы .NET программист, то вы наверняка объявляли и использовали события в своем коде. Несмотря на это, не все знают, как события работают внутри и какие особенности связаны с их применением. В этой статье я попытался описать работу событий как можно более подробно, включая некоторые частные случаи, с которыми редко приходится иметь дело, но про которые важно и\или интересно знать.
Читать дальше →
Total votes 59: ↑57 and ↓2+55
Comments16

PyBrain работаем с нейронными сетями на Python

Reading time8 min
Views165K

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

PyBrain — одна из лучших Python библиотек для изучения и реализации большого количества разнообразных алгоритмов связанных с нейронными сетями. Являет собой удачный пример совмещения компактного синтаксиса Python с хорошей реализацией большого набора различных алгоритмов из области машинного интеллекта.

Предназначен для:

  • Исследователей — предоставляет единообразную среду для реализации различных алгоритмов, избавляя от потребности в использовании десятков различных библиотек. Позволяет сосредоточится на самом алгоритме а не особенностях его реализации.
  • Студентов — с использованием PyBrain удобно реализовать домашнее задание, курсовой проект или вычисления в дипломной работе. Гибкость архитектуры позволяет удобно реализовывать разнообразные сложные методы, структуры и топологии.
  • Лекторов — обучение методам Machine Learning было одной из основных целей при создании библиотеки. Авторы будут рады, если результаты их труда помогут в подготовке грамотных студентов и специалистов.
  • Разработчиков — проект Open Source, поэтому новым разработчикам всегда рады.

Читать дальше →
Total votes 95: ↑92 and ↓3+89
Comments22

OpenSource или история одной любви

Reading time3 min
Views1.3K
Что может подвигнуть разработчика на написание программного обеспечения просто так, не за деньги, не получая изначально ни копейки а только тратя все свое и без того отсутствующее свободное время? Существует на самом деле множество причин и люди не раз пытались их анализировать. На многих сайтах существует огромное количество опросов, с множеством вариантов ответов, на которые люди отвечают примерно равномерно. Оно и понятно, мотивация у всех разная. Однако, моя задача сегодня не попытаться вывести “теорию опенсорса”. Моя задача сегодня – рассказать о небольшом проекте, который я делал совсем недавно. И который помог мне добиться хороших позиций в жизни, хоть о нем так никто и не узнал.
Читать дальше →
Total votes 47: ↑39 and ↓8+31
Comments17

Кластеризация k-means с расстоянием Евклида и Махаланобиса

Reading time3 min
Views15K
В предыдущей статье я рассказывал, как можно реализовать алгоритм k-means на c# с обобщенной метрикой. В комментах можно почитать обсуждение того, насколько целесообразно использовать разные метрики, о математической природе использования разных метрик и тому прочее. Мне тогда хотелось привести красивый пример, но не было под рукой подходящих данных. И вот сегодня я столкнулся с задачей, которая хорошо иллюстрирует преимущества использования расстояния Махаланобиса в k-means кластеризации. Подробности под катом.

Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments26

Я не знаю ООП

Reading time12 min
Views550K
Я не умею программировать на объектно-ориентированных языках. Не научился. После 5 лет промышленного программирования на Java я всё ещё не знаю, как создать хорошую систему в объектно-ориентированном стиле. Просто не понимаю.

Я пытался научиться, честно. Я изучал паттерны, читал код open source проектов, пытался строить в голове стройные концепции, но так и не понял принципы создания качественных объектно-ориентированных программ. Возможно кто-то другой их понял, но не я.

И вот несколько вещей, которые вызывают у меня непонимание.
Читать дальше →
Total votes 412: ↑309 and ↓103+206
Comments870

Information

Rating
Does not participate
Registered
Activity

Specialization

Game Developer, Software Architect
Lead
C#
OOP
ASP.Net
MSSQL
Game Development
C++
Programming microcontrollers
Software development
WPF
Unity3d