• Какие разделы математики актуальны в сфере нейронных сетей и ИИ?

    gbg
    @gbg
    Любые ответы на любые вопросы
    • Линейная алгебра - основа основ, без нее никаких численных дел не будет
    • Теория операторов - и без нее тоже. Нужно уметь оценивать операторы.
    • Теория меры и интеграла Лебега - и измерать множества тоже нужно уметь
    • Функциональный анализ - и работать с абстрактными операторами тоже
    • Высшая алгебра - без нее к операторам лезть можно, но лучше выучить
    • Гармонический анализ - без него в машинное зрение лезть смысла нет. Всякие операторы, свертки, ядра - это все туда
    • ТФКП - аналогично
    • Уравнения математической физики - без понимания того, как работает свет в этом мире анализировать что-либо смысла нет.
    • Теория интерполяции - как превратить результаты измерений в формулы
    • Численные методы - основа основ.


    В профессиональной деятельности математика нет деления на разделы. Математика используется вся. Куском.

    Учитесь лучше.
    Ответ написан
    5 комментариев
  • Какие разделы математики актуальны в сфере нейронных сетей и ИИ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Никакие и все.

    Немного лирики. Дело в том, что нейронные сети штука очень непонятная. Она неплохо классифицирует, вроде бы умеет учиться. Но вот принимать решения она почти не умеет. То есть, в каком-то смысле она принимает решения, во время классификации, соотнося образ к паттерну, однако на деле всё как-то печальнее. А ещё она совершенно не умеет выполнять алгоритмы в классическом смысле слова. Ну и получается, что вся суть нейронной сети, всё, что она будет делать определяется её параметрами и входными данными. Вроде бы и похоже на алгоритм, но алгоритм можно определить 1) без входных параметров (классический), 2) не параметрами, а набором действий. Нейронная сеть более... Аналоговая.
    Отсюда мы подходим к тому, что нам обязательно нужен будет дифференциальный и функциональный аппараты. К сожалению, современные компьютеры не способны адекватно работать с бесконечно малым и большим, поэтому нам обязательно потребуются методы приближения: это и сами вычислительные методы, и некоторые методы оптимизации (они и по другим причинам потребуются). Да и совсем не лишними будут теория чисел, статистика, мат.логика и определённо более общие теории вероятностей и случайных процессов.

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

    Но стоит понимать, что все эти разделы очень тесно переплетены. Не получиться поднять какую-то одну часть отдельно от другой. Всё взаимосвязано. Вообще, очень рекомендую khan academy - наикрутейшая штука. По всей видимости, есть всё, что я здесь описал.

    Нажал ctrl+enter рановато...
    Как можно заметить, в общем-то нужна вся математика. Если какой-то раздел не указан, то он скорее всего будет затронут в других разделах.

    Однако, нейронные сети очень новая... Практика. По сути они работают примерно так: мы берём туеву хучу интегральных и дифференциальных уравнений, берём какое-то приближение и реализуем "квантуя" и "дискретезируя", а потом запускаем. Причём в момент отсчётов всё вроде бы хорошо - процессы идут, ошибка обратно распространяется, однако... Есть небольшая проблема в том, что между этими обновлениями нашей модели как бы и не существует. И если в реальном мире частота дискретизации ну невероятно высока, настолько, что мир кажется гладким (впрочем, есть возможность, что он такой и есть - сейчас не совсем понятно, какой мир и в самом деле), однако в нашей модели эта частота получается ну очень низкой. Поэтому учёные просто молятся, чтобы ничего плохого между этапами существования их модели не произошло. Честно говоря - сомнительное занятие.

    Так что, если не желаете продвигать науку вперёд, очень советую бросить это дело. Можете построить пару простейших перцептронов, однако на большее советую не рассчитывать. Сыровато.
    Ответ написан
    8 комментариев
  • Какие разделы математики актуальны в сфере нейронных сетей и ИИ?

    aideus
    @aideus
    Для ИНС в первую очередь нужны:
    - линейная алгебра (работа с матрицами: большинство ИНС очень компактно записывается в матричной форме)
    - математический анализ (дифференцирование: многие популярные алгоритмы обучения строятся на градиентах; понятие экстремума, сходимости и т.д.)
    - теория вероятностей (многие ИНС имеют вероятностную трактовку, без которой понять их архитектуру проблематично)
    - численные методы (например, когда аналитический вычислить производную или интеграл нельзя, а такие ситуации возникают часто, ничего другого кроме их численной оценки не остается, и нужно знать, как это правильно сделать);
    Для более продвинутого или специфического использования ИНС нужны:
    - теория графов (во-первых, сама ИНС - это граф, хотя на базовом уровне использования этого учитывать не нужно; во-вторых, ряд архитектур ИНС удобно представлять в форме вероятностных генеративных моделей, конкретнее, графических моделей);
    - теория дифференциальных уравнений (рекуррентные ИНС соответствуют системам дифуров);
    - теория динамического хаоса (ряд рекуррентных ИНС, например сети Хопфилда, хорошо описываются в терминах фазового портрета, аттракторов, бифуркаций, но в целом эта область математики нужна не очень часто);
    - исчисление предикатов (традиционно сети с бинарными нейронами рассматривались как способ представления предикатов);
    - теория алгоритмов (конечные автоматы, формальные грамматики, машины Тьюринга и т.д.) (помимо того, что сами ИНС представляют собой некий класс алгоритмов и возникают теоретические вопросы, где этот класс для той или иной архитектуры находится в иерархии Хомского, сейчас еще популярны и нейросимвольные сети, требующие обращения к указанным разделам математики)

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

    Если же говорить про ИИ в целом, то там нужна практически вся математика (хотя это в определенном смысле преувеличение: чистые математики решают свои внутренние задачи очень изощренными методами; в ИИ могут пригодиться результаты любого раздела математики, но крайне редко эти разделы нужны целиком). Гармонический анализ (Фурье, вейвлеты), без которого можно более или менее обойтись в машинном обучении, строго необходим в компьютерном зрении или распознавании речи. Комбинаторика, весьма редко нужная для ИНС, является основой классических методов ИИ (поиска в пространстве состояний). Теория алгоритмов, находящая лишь эпизодические применения в ИНС, является строго необходимой (как частично, так и практически полностью) в других подобластях машинного обучения и ИИ (например, в автоматическом программировании или машинном переводе). Теория множеств строго нужна в области представления знаний, нечеткой логике и т.д. Даже теория категорий может пригодиться (например, в вероятностных языках программирования - подобласти машинного обучения - при использовании функциональных языков типа Haskell ее применение оказывается вполне уместным). Ну, и так далее.

    В общем, в каждой подобласти ИИ есть свой минимально необходимый набор математических знаний, без которого очень сложно начать эту подобласть изучать. Для ИНС это линейка, матан, численные методы, весьма желательно теория вероятностей. В других областях это может быть комбинаторика, графы, теория алгоритмов, мат. логика. Есть разделы математики, которые окажутся неизбежными для изучения/использования, только при выборе конкретной подобласти или даже конкретных методов в ней; а так они или совсем не нужны, или нужны только самые базовые сведения из них.
    Ответ написан
    Комментировать
  • Названия it-должностей на английском?

    Evgeny_Shiryaev
    @Evgeny_Shiryaev
    Специалист по поддержке пользователей — Technical Support Engineer/Desktop Support Engineer;
    Системный администратор — System(s) Administrator;
    Сетевой администратор — Network Administrator;
    Системный инженер — System(s) Engineer;
    Архитектор — Architect (по областям, например Software Architect, Infrastructure Architect, и т.д.);
    Ведущий инженер/Старший инженер — Senior Engineer;
    Программист/Разработчик — Software Developer;
    Тестировщик — Tester;
    Руководитель проектов — Project Manager;
    Руководитель группы — Team Leader;
    Начальник отдела ИТ/Технический директор — Chief Technology Officer (CTO);
    Руководитель информационной службы/Директор по информатизации — Chief Information Officer (CIO).

    Разница между CIO и CTO (если упрощенно): CIO — человек бизнеса, который что-то понимает в ИТ, CTO — технический человек, который что-то понимает в бизнесе.
    Ответ написан
    Комментировать
  • Какой план обучения программирования можно предложить школьнику на лето?

    TanVD
    @TanVD
    Джуниор C++/QT
    Почитай "Алгоритмы. Вводный курс." Кормена. Очень помогает ввестись в базовые алгоритмы и структуры данных. По языкам - прекрасная книга Кернигана и Ритчи "Язык программирования Си". Потом можно почитать Таненбаума, у него целая серия книг по основным сферам технологий.
    Есть ресурсы типа CodeAcademy, они помогают ввестись в синтаксис языка. (Например javascript, python. Но начинать советую всё же с С или С++).
    Посмотри Stepic, там сейчас выложены лекции Computer Science Center. Лекции по алгоритмам, архитектуре компьютера и основам программирования на С++.
    Очень советую начинать слушать подкасты, типа Радио-Т, devzen - начнёшь втягиваться в современную ситуацию в мире IT (тем более это не обучение и так можно отдыхать).
    Так же посматривай HabhHabr(технологии), Geektimes(научно-популярное), Мегамозг(вопросы менджемента и маркетинга в IT). (И это всё гораздо веселее чем звучит тут)
    Нужно научиться жить в IT (что однако не означает, что нужно непременно бросить читать любимого Шолохова), когда твоя учёба будет занимать не 2-3 часа в день, а все 14 часов бодрствования.
    На тему подробного плана. Я в 10 классе занимался так:
    1) Разбирал язык Си по книге Кернигана и Ритчи
    2) Смотрел лекции по Си на 100ege (прекрасной заменой могут стать лекции stepic)
    3) Попиливал свои проекты, например шифровал текст обычным XOR, составлял словари частотности из текстов, даже писал проверялку орфографии в словах.
    4) Почитывал книгу Кормена.
    Если найдёшь проект, интересный тебе, сразу станет легче изучать. Из-под палки вряд ли что получится.
    Ответ написан
    Комментировать