Ответы пользователя по тегу Математика
  • Математическая литература - почему всё так плохо?

    Deerenaros
    @Deerenaros Автор вопроса
    Программист, математик, задрот и даже чуть инженер
    Раз уж начали так спешно подписываться на мой совершенно бесполезный вопрос... Таки поделюсь полу-решением.

    Khanacademy - шикарный ресурс с огромным количеством материалов. Что есть: все разделы математики, неплохо структурированы, хорошо подобраны. Отлично подан материал. Английский очень простой - у меня не возникало проблем слушать. Чего нет: всего нового. Материал конкретно по математики едва дотягивает до нормального университета. Никаких геометрий Лобачевского или доказательств теорем Ферма. Что хорошо: попытка учить в игровой форме, неплохой дизайн (не вырвиглазный), социальный аспект. Что плохо: не вырвиглазный дизайн не значит отличный, до хорошего едва дотягивает, неплохо структурирован также не означает отлично - всё таки некоторый хаос присутствует, хотя бы в том, что материал не очень хорошо связан даже между подразделами. Не говорю о разделах. И самое ужасное - плохо оценивает текущие знания. Уже какую неделю бьюсь об него и нередко глупо ошибаюсь. Понимаю, что ошибся. Но он снова за своё - повторяет и повторяет эти бестолковые несократимые дроби. Открывать calc.exe лениво, считать в уме получается не очень.

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

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

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

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

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

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

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

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

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

    Если кратко: обязательно Кнут и Кормен, остальное по желанию. Первую надо иметь как набор настольных томиков, читать не обязательно =) Я серьёзно, одна из немногих книг, что просто лежа рядом на столе повышает интеллект на 10. Кормен, ну, он другой. Его надо вдумчиво читать и выполнять упражнения. Все. То есть желательно, можно выборочно, структура книги весьма и весьма это позволяет. Математики почти нет, зато есть именно алгоритмы и структуры. Собственно, то, что программисту и надо. Выполнение всех упражнений повышает интеллект на 100500, так что этот вариант явно предпочтительнее, однако банальное наличие этой книги интеллект не повысит =)

    Из чисто математических ресурсов очень рекомендую khan academy - нашикарнейший портал невыносимо крутых знаний. Но самое крутое, что я там пока вижу - это ответ на мой вопрос. Там всё очень упорядочено, от правила Бернулли — Лопиталя до закона Чебышева, от начал Аль-Хорезми, до проблем тысячелетия. В общем, очень круто, очень структурировано и очень... Просто очень. Хотя надо уточнить - он не чисто математический, у него есть чисто математический раздел.

    UPD.
    Dmitry напомнил мне про Кнута, Грэхема с Поташниковым. Мало того, что личности сами по себе довольно интересные, так ещё и книга поистине получилась замечательная. И хотя можно долго спорить о необходимости программисту иметь определённые познания в математике - лично я почувствовал определённое просвещение, прочитав эту книгу.
    Ответ написан
    2 комментария
  • Как вычислить наибольший прямоугольник в многограннике?

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

    Теперь давайте посмотрим внимательно на прямоугольник. Как считается его площадь? Ах да, S = a*b, это геометрия 7го класса, если не математика 4го.

    Ок, теперь можно посмотреть на многоугольник, в который надо прямоугольник вписать. Ну, он неприятный, да, однако кое-что известно. А именно - "прямые отсечения", как нам сказал @begemot_sun, вообще в данной задаче многоугольник лучше хранить в виде прямых. Ну да не суть, просто вычислений будет чуть больше. Ок, теперь что мы делаем. Мы строим функцию. Да да - самую банальную функцию. Функцию S(\phi) = a(\phi)*b(\phi). Как это получить - оставлю вам, там немного геометрии 7го класса.

    Ну да, но вот вопрос, а что с ней вообще делать? Внимание ответ - поиск экстремума в общем случае - задача сложная =) Даже wolframalpha здесь бессильна (впрочем конкретно в этом случае это даже невозможно). Так что здесь имеют место быть только оптимизации - метод градиентного спуска или метод "отжига". Гуглите, читайте, реализуйте.

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

    P.S. Не пытайтесь просить кого-то решить задачу за Вас на таких ресурсах. Во-первых, это моветон. Во-вторых, ресурс здесь чтобы подсказать решение задачи, но не решить её ВМЕСТО Вас. Конкретно этот случай потребует часов 10 вспоминания матана средней школы, что не очень приятно. Учитывая ЗП в 2k/час, думаю это будет дороговато.

    UPD. Внезапно осенило, что зависимость будет чуть сложнее. В том смысле, что это будет не просто S(\phi), а S(\phi, a) = a*b(\phi, a). Ну да, задача будет сложнее. То есть это уже самый ни на что есть матан - максимум функции от двух переменных.
    Ответ написан
  • В каких сферах программирования активно используется математика?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    В общем и целом, вам всё тут расписали. Однако немного дополню своим скромным мнением:

    Основы арифметики и булевой логики нужны везде. Да что там основы - чем глубже тем лучше.

    Теперь матан. @newross прав - в кибернетике, та что обработкой сигналов занимается, там полно матана. Он, конечно, не адовый, но дифференцировать, интегрировать и раскладывать в фурье, а также строить корреляции и автокорреляции придётся много. Причём сигналы везде, вокруг - радиосигнал bluetooth, GSM, FM, звуковые, видео кодеки, изображения - всё это тоже сигналы. Дискретные или непрерывные. Ну и конечно прикладнуха - везде где требуется матан и автоматизация рассчётов - там полно работы для программиста-математика.

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

    Ещё кое-что про анализы - в силу конечности компьютерных ресурсов, имеют место быть постоянные переходы от гладкого и бесконечного к дискретному и конечному путём банальных ограничений, пределов, интегрирований и дроблений. Так что без дискретной математики делать нечего вообще в наукоёмких областях. А дискретка по сути и есть программирование. Какие-то её части прокрались во все области - от медиа до каналов передачи данных и их защиты. Хоть она и относительно простая, в ней огромные пробелы. И понятное дело до гомоморфизмов редко доходит, но вот всякие законы больших чисел используются на полную катушку. Ну, здесь вам и теории графов, и теории чисел, и комбинаторики, и логика. Да что там, алгебра то с её 2+2 - дискретная математика. В общем, как и сказал - по сути информатика и есть приложение к дискретке.

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