Pull to refresh
3
0
Send message
Чтобы исключить субъективные ощущения, в статье не хватает замеров времени выгрузки на Ваших данных:
1) Через обработку 1С
2) COM-соединение к 1С (например, на C#)
3) запрос к базе SQL + COM-соединение к 1С для получения значений перечислений (предложенный вариант)
И самый важный вопрос – нашелся ли 1С-программист и где он был все это время?
Дело не в количестве информации, а в том, как ее обрабатывать.

Если мы посылаем робота за хлебом и пошел дождь (а мы забыли прописать, что делать в случае дождя), у него вывалится исключение. Мы садимся за клавиатуру и добавляем новые условия и действия. То есть опыт получаю я как программист, а в робота закладываю инструкции – они же подлежат программированию, как Вы верно заметили.

Но вот новая нестандартная ситуация:
4.1. Тот зонт, который в доме – дырявый.
4.2. Дырявый зонт не помогает от дождя.
4.3. Зонт можно попросить у соседа.
И робота опять нужно тащить на перепрошивку.

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

В го, вероятно, много нестандартных ситуаций, и их все так быстро не запрограммируешь (если это в вообще возможно). Чтобы обыграть человека, нужно строить алгоритм «на лету», как это делает человек. Переборы ходов, как в шахматах, здесь уже не прокатывают.
По иностранным терминам может быть, все наоборот:
unexpected (неожиданные) situations – это неверные аргументы (ArgumentException), ведь метод ожидает expected range of values for the argument
exceptional (исключительные) situations – это когда вызываемые в коде операции и методы порождают exceptions.

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

код, который реализует тот или иной функционал – код репозитория, если идет работа с БД, к примеру. И в этом случае обработчик напротив должен быть максимально близко к месту возникновения исключения.
Не могли бы Вы подробнее описать, что будет делать этот обработчик?
Эта техника уже относиться скорее к этапу кодирования,
Образованные люди пишут практически без ошибок, но именно ошибка с мягким знаком в глаголах то и дело появляется в статьях. Заметил одну закономерность, которой хочу с вами поделиться (поэтому пишу не в личку):

В глаголе с мягким знаком ударение на слоге с мягким знаком

Так, из двух вариантов:
1) отнОсится – ударение на букве О (второй слог)
2) относИться – ударение на букве И (третий слог)
произнося про себя вышеприведенное предложение, выбираем первый вариант.
В КЛАДР-е нет неограниченного уровня вложенности, так что там все просто.
Хорошо, пусть идет сквозная нумерация независимо от вложения. Если отвести под одно значение 10 цифр, получится 255 / 10 = 25 уровней вложения. Этого достаточно? Просто в описании задачи не сказано о требуемом максимальном количестве комментариев и уровней вложенности.
Все же решение для сортировки не в переходе на другую систему счисления, а в значениях фиксированной длины. Так, оставаясь в десятичной системе счисления можно вышеприведенный пример записать в виде

000001
000001.000002
000001.000002.000003
000001.000002.000007
000001.000002.000010
000004
000004.000008
000004.000008.000009
000005
000005.000006

Если использовать под каждое значение 6 позиций, можно в каждой ветке хранить 1 млн комментариев, а максимальная вложенность будет 256 / 6 = 42 подуровня. При этом десятичная система нагляднее и не требует кодирования.
Полностью переводить комментарии — дело нелегкое.

MyApp.country.get(«presidentName»);
// «Barack Obama»
Боюсь нарушить правила Хабра на тему не влезать в политику, но может быть для российских фирм безопаснее не использовать Google Docs? Ведь Google – это американская корпорация.
Мы же живые существа, так что до заката без перерывов никак не получится. Вдохновение не устоит перед встроенными в разработчика прерываниями в направлении туалета и холодильника, которые вместе с затекшими частями тела отвлекают посильнее тикающего помидора.
Подскажите, пожалуйста, ссылки на литературу, а то в поиске на «рост дендритов» выдаются ссылки на расщеплённые скелетные кристаллы.
Очень хочется почитать подробнее, по каким законам меняется конфигурация нейросети при обучении, когда усиливаются не существующие синапсы, а именно образуются новые соединения.
Извините, но эти «достижения», мягко говоря, не дотягивают до интеллекта. ИНС – это жалкие попытки моделирования работы нейронов, как если бы обезьяны нашли набор радиолюбителя и пытались сделать радиоприемник, не разобравшись в назначении деталей.
Где результат исследования моделей сетей? Почему мы продолжаем программировать большинство приложений, тупо вводя инструкции? Вот пример из статьи:
Поэтому её алгоритм состоял в том, чтобы в ситуации выигрыша делать бессмысленные ходы в собственной зоне, ожидая, когда соперник признает поражение.
Зачем вообще разработчик размещает какой-то алгоритм? Архитектура машины с достижениями в области искусственного интеллекта должна сама выработать подходящий под сложившиеся условия алгоритм.
И дальше.
Реми Кулэм всё равно был счастлив — и пообещал к следующему чемпионату доработать алгоритм действий в концовке.
Машина, проиграв, так ничему и не научилась. А вот разработчик получил некоторый опыт, который пообещал заложить в виде инструкций к следующему разу. Почему он не пользуется обучающейся сетью, а пишет алгоритм? А потому что применение сетей очень ограничено то ли из-за того, что мы их неправильно моделируем, то ли применять не научились.
После прочтения материалов по нейробиологии мне представлялась следующая картина. У организма при рождении и дальнейшем развитии нейроны связываются один раз и навсегда (возможно, пути прописаны в генах). От глаза нервы идут в первичную зрительную кору, от уха – в свою область и так все сенсорные и моторные области. То есть на построение нейросети опыт не влияет.
Закрепляется же опыт путем усиления синапсов (постулат Хебба).
Конечно же, инструкции для человека часто пишутся без 3-го пункта (без объяснений почему) – рецепты приготовления блюд, инструкции к бытовой технике, как оказать первую медицинскую помощь – примеров можно привести много. Здесь нужны четкие инструкции, и объяснения будут только мешать.

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

Теперь вернемся к программированию. Программист узнал, что его программе будет противостоять любитель ферзей. Программист не может объяснить компьютеру, что противник любит играть ферзем. Вместо этого он пишет в программе «если ферзи под боем, нужно делать размен ферзей». Если бы вам как человеку дали такой совет, у вас бы возникло желание как минимум разобраться в причине такого совета – а зачем делать размен ферзей?
У компьютера же архитектура проста – выполнять инструкции программиста. А вот если бы компьютер по базе данных фактов об окружающем мире, заложенных людьми и на основе собственного опыта, сам себе составлял бы алгоритмы, возможно, мы бы имели более сильного игрока в го.
При обучении человека, если мы хотим, чтобы обучаемый понял смысл, мы говорим:
1. в случае (условие)
2. сделай (действие)
3. потому что (объяснение)
В компьютерной программе третьего пункта нет. Только условия и действия. Поэтому я бы не сказал, что программист при программировании что-то объясняет.
в мозгу формируется (буквально прорастает) нейронная сеть

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

Два уточняющих вопроса:
1) Какой тип значения коэффициента на входах (моделирование синапсов)?
Синапс может быть возбуждающий или тормозной. Возбуждающие синапсы в модели представлены положительными коэффициентами. А вот тормозные синапсы это совсем не то же, что отрицательные коэффициенты.
2) Какой тип значения на выходе нейрона?
Биологический нейрон может выдавать до 1000 импульсов в секунду (точно не знаю) при максимальной активности и ни одного импульса, когда не активен.
Какой тип значения будет в модели? Можем ли мы принимать молчание нейрона за отрицательный сигнал? Ведь суть молчания нейрона не в том, что он распознал противоположное по смыслу событие, а в том, что он ничего не распознал.

Information

Rating
Does not participate
Registered
Activity