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

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

Когда я посмотрел на эти решения, я почувствовал, что это можно автоматизировать. У меня возникла идея использовать нейронные сети для автоматизации процесса проектирования (сэкономив нам 3 дня работы и много лидов, выпавших из строя). После того, как мы все согласились с этой идеей, я начал планировать, как начать понимать глубокое обучение (потому что оказывается, что Ничего по теме не знал).

После некоторого исследования я обнаружил две точки зрения. Сначала изучите математику (многомерное исчисление, статистика, линейная алгебра), затем изучите теорию, а затем код. Второй подход состоит в том, чтобы сначала написать код, следуя руководствам по популярным фреймворкам (Theano, TensorFlow, Keras, Caffe и т. Д.) И углубляясь в теорию по мере вашего продвижения.

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

Здесь я начал обсуждать, стоит ли мне изменить свой подход и вместо этого изучать библиотеки.

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

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

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

«Не начинайте свое исследование с разработки чего-либо. Сначала проверьте в литературе, что было сделано, скорее всего, кто-то уже решил вашу проблему. Больше не открывай кипяток »

Естественно, я заходил в Интернет и искал академические статьи о нейронных сетях и компьютерном зрении.

Через пару часов я нашел то, что, как мне казалось, было моим Святым Граалем: исследовательскую работу некоторых корейских ученых, в которой говорилось о реконструкции трехмерных зданий с использованием нейронных сетей. Эта статья сделала именно то, что я хотел.

Сейчас я воспроизводю результаты из статьи, которую я нашел. До сих пор я был в некотором роде успешным. Оказывается, они используют тип нейронной сети (которой нет в стандартных библиотеках) для кластеризации линий с углами. На следующей неделе я лечу в Торонто, чтобы встретиться со своими партнерами и некоторыми экспертами в этой области, надеясь, что они помогут мне с этим типом нейронной сети, о которой я не знаю.

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