Математика для программиста

Автор темы demetrius2003 
ОбъявленияПоследний пост
ОбъявлениеРаботодателям и кадровым агентствам: Размещение вакансий и рекламы в форуме26.03.2008 03:07
ОбъявлениеРекомендации по использованию теха в нашем форуме15.04.2017 21:40
ОбъявлениеПравила и принципы форума «Высшая математика»28.10.2009 15:17
21.02.2019 17:17
Математика для программиста
Доброго дня, уважаемые форумчане!
Прошу сразу не сносить мою тему в корзину! Тема серьёзная! Если мне удастся дойти до конца пути, который я себе наметил и походу делать заметки, то заметки эти послужат хорошую службу многим людям, таким же как и я! Если кратко, я программист. Причём как и большинство мне подобных - самоучка. Т. е. нет у меня высшего образования в этой отрасли. Возникла необходимость чуть поднять своё ремесло на новый уровень. И тут обнаружилась неприятность. Подъём этот сопряжён с изучение материала изобилующего тяжёлыми математическими выкладками. Когда читаю статьи и/или книги, то встречаю иной раз порции текста и не понимаю даже к какому разделу математики относится то или иное высказывание. Т. е. чтоб углубиться в тему надо знать что гуглить, а ежели гуглить то что есть, то открывается ещё бездна текста с ещё более непонятными оборотами. Круг замыкается. Наступает что-то наподобие отчаяния! Мне срочно нужен пинок в нужном направлении. В каком виде я пока не знаю. Может это учебная программа какого нибудь ВУЗа по специальности (а по какой специальности, кстати?). CS наверное? Компьютер сайнс? Как это будет по русски? Как понять, что вообще происходит? Пример - что значат понятия "матрица симметрична и положительно определена"? Что такое "квадратичная форма на пространстве"? Что гуглить в этом случае? Что читать? Даже не знаю, как ещё объяснить происходящее! Не понимаю, что делать, как быть то?
21.02.2019 20:18
хм
поступите на заочку на какой нибудь факультет прикладной математики. или наймите репетитора. до определенных пределов математика не так сложна. .
21.02.2019 22:12
Возможно,
Цитата
demetrius2003
Возникла необходимость чуть поднять своё ремесло на новый уровень
Вам стоит больше рассказать о содержании того уровня, до которого Вы хотите поднять своё ремесло. Хотя такое и случалось, но неужели Вам в одиночку предстоит создать конкурентный пакет компьютерной алгебры?
Многие темы не так страшны в реальности, как описаны в теории.
22.02.2019 01:06
с вас будет толк
Сразу предупреждаю я не математик. Прикладник. С программированием знаком.
Мы повязаны с обработкой больших объемов информации, представленных числами.
Когда начинаем программировать, задачи сравнительно просты и мы можем их формулировать на языке чисел.
По мере накопления опыта задачи усложняются и наступает момент,когда сформулировать их на этом языке
уже нельзя: слишком объемно для восприятия и теряется общность в алгоритмизации.
Требуется более абстрактный подход. Как это было в школе,когда от арифметики,т.е. конкретного языка цифр,мы переходили
к алгебре,заменив числа идентификаторами.
Так и здесь. Базовый раздел математики,описывающий действия с массивами чисел, называется линейной алгеброй, в которую как составная часть входит теория матриц. (На языке линейной алгебры наш одномерный массив-вектор,а многомерный массив- матрица).
Вот с этого раздела и надо начинать.



Редактировалось 1 раз(а). Последний 22.02.2019 09:02.
22.02.2019 10:33
//
Цитата
demetrius2003
Пример - что значат понятия "матрица симметрична и положительно определена"? Что такое "квадратичная форма на пространстве"?

Просто интересно, - это из какой области к программированию?
На что похоже?
Тензоры, матрицы, градиенты, присущие нейросетям, очень просты к пониманию даже для самоучки (и ни разу не математика).
Если ко всяким средам типа cad-овских, то и не знаю даже, "самоучкам" там делать нечего.. Также, как и специфические - типа геодезии и проч.
То есть, не понимаю, где самоучка может столкнуться с "квадратичной формой на пространстве"...confused
22.02.2019 11:26
"..очень просты к пониманию даже для самоучки"
Вовочка задал вопрос армянскому радио:
"Что такое сольфеджио?"
Армянское радио ответило: "Не выпендривайся"

В оригинале ответ звучал несколько иначе и более точно отражал суть.
22.02.2019 11:57
..
Цитата
brimal
"Не выпендривайся"

Абсолютно согласен!
Деменция - вещь серьезная..
22.02.2019 19:11
***
Цитата
oneman
Вам стоит больше рассказать о содержании того уровня, до которого Вы хотите поднять своё ремесло. Хотя такое и случалось, но неужели Вам в одиночку предстоит создать конкурентный пакет компьютерной алгебры?
Многие темы не так страшны в реальности, как описаны в теории.
Комп.алгебра тут совсем ни при чём! Реалии жизни таковы, что софт день ото дня становится сложнее и сложнее. Все новомодные штучки просто требуют применения внутри себя архисложного матаппарата. Без глубоких знаний некоторых предметных областей говорить о том, что ты хороший программист просто глупо! Тем паче наивными выглядят высказывания по типу "первую коммерческую программу я написал в 14 лет" или "тимлидом я стал в 16". Чтоб соответствовать уровню, надо каждый день учиться! Я упёрся в стену. И пока она слишком для меня высока. Под предметными областями я имею в виду очень многое. К примеру ЦОС, теорию конечных автоматов, теорию алгоритмов, криптографию... Это конечно только кажется смешным, но элементарная программа построения PSK созвездия принимающая входные данные из файла и/или с выхода АЦП в обязательном порядке будет содержать БПФ, мульён нетривиальных алгоритмов, криптографию и прочая. Как тут не запаниковать! Открываем лекции Сперанского по теории экспериментов с конечными автоматами и в одном из первых абзацев читаем - "Автомат А назовём сильно связным, если его граф переходов сильно связен". И всё! Приехали! Не объясняется ни что такое автомат, ни что такое граф переходов, ни что такое сильносвязанность! Дальше двигаться бесполезно, так как нет понимания элементарного. Но может учебник плохой? Идём далее. Открываем монографию Финка "Сигналы, помехи, ошибки". Опять же в первых параграфах читаем - "Пусть А - событие, заключающееся в том, что ошибка возникла в первом канале, а В - независимое от А событие, заключающееся в возникновении ошибки во втором канале. В первом решении ищем условную вероятность Р(А и В|А) или Р(А и В|В). Она очевидно равна Р(А и В)/Р(А) или, учитывая независимость А и В, Р(А)Р(В)/Р(А)=Р(В). Во втором решении отыскивается другая условная вероятность Р(А и В|А или В). Она равна Р(А и В)/[Р(А и В)+Р(не А и В)+Р(А и не В)]. *****! ЧТО ЭТО? Теовер? Булева алгебра? Почему вперемешку? Реально что это??? Т. е. сколько бы я ни брал книжек профильных. Дальше двинуться не могу, так как они, по понятным причинам, рассчитаны на людей, которые имею некий багаж знаний. А у меня его нет. Вот я и спрашиваю у сообщества - что ДОЛЖЕН знать программист? Как называется ВУЗовская специальность ориентированная на подготовку нормальных программистов (не веб дизайнеров!). Прикладная математика? Т. е. я так понимаю там в программе должно быть как минимум - Логика и дискретная математика, теории множеств, чисел, графов, матан, линал, статистика и комбинаторика. Без этого - тупик.
22.02.2019 21:43
Вот,
видите, речь о дискретной математике. Собственно, на ней основано всё программирование. Например, матлогика, насколько помню, преподаётся на первом курсе безо всякой предварительной подготовки, теорвер где-то рядом. Графы не знаю, когда, потому что не давали, но начало в книжках, вроде бы, понятное… Попробуйте со справочника Корн-в начать для ориентирования.
23.02.2019 09:15
Это что, троллинг?..
Ещё раз, - если некто гордо называет себя "программистом - самоучкой", то, как минимум, нелепо выглядят пассажи "что такое граф, связность, зависимые-независимые события теорвера?" ну и проч.
Если персонаж сумел ведь "как-то асилить" программирование, то уж с такого плана понятиями должен разбираться "походя".
И ещё раз - ни в криптографии, ни в БПФ, ни, (в чем там ещё "заминка"?).. нет ничего сложного для понимания уже "состоявшемуся" программеру (пусть, и самоучке, а в некотором роде это даже лучше - говорит о том, что человек точно может сам разобраться).
Тут и возникает "когнитивный диссонанс" - чел явно в чем-то проврался..
23.02.2019 09:32
***
Цитата
alexo2
персонаж...чел явно в чем-то проврался..
Странно слышать такое, как минимум. Никого не хотел обидеть. Врать? Вроде не врал никому. Просто зашёл за помощью. Прям как в анекдоте - Американский форум - задаёшь вопрос - получаешь ответ. Еврейский форум - задаёшь вопрос, тебе в ответ задают вопрос. Русский форум - задаёшь вопрос, тебе объясняют, какой ты мудак! Спасибо за "помощь".
23.02.2019 10:07
Не обращайте внимания.
Цитата
demetrius2003
Американский форум - задаёшь вопрос - получаешь ответ

Полностью подтверждаю.



Редактировалось 1 раз(а). Последний 23.02.2019 10:13.
23.02.2019 12:59
увы,
нам не дано знать меру нашего незнания и поэтому, видя конечную цель, мы иногда не в состоянии проложить
путь к ней.
Я был в аналогичной ситуации. Выручило высшее образование и представлял последовательность основных
разделов, которыми надо овладеть.
В данной ситуации упоминание о положительно определенных матрицах и квадратичных формах подсказывают, что существуют заметные пробелы в линейной алгебре. А без системного знания ее до некоторого уровня далее не продвинешься.
24.02.2019 04:39
гы
американцы советуют людям умственных профессий, которые зашли в тупик, заняться силовыми видами спорта: борьба, бокс, тяжелая атлетика..ибо "из всех кто там был, ни один не вернулся живым..."
24.02.2019 07:27
//
Цитата
brimal
Армянское радио ответило: "Не выпендривайся"

Немного "повыпендриваюсь" в тему (и по мотивам прошедшего праздника)..smile
Готовлю восьмиклассника к выставке (хобби у меня такое - заниматься со школьниками - замечу, - полностью бесплатно и за свой счетcool).
В данном случае проект - ни много ни мало - "Автономный ударный дрон".
Мозги нижнего уровня (на базе прошивки Multiwii и контроллера stm32f103) уже заточены, коптер, соответственно летает по командам.
В качестве минутки юмора - смотреть до конца (отрыв винтов при наладке полетного контроллера "на резинках")biggrin
https://www.youtube.com/watch?v=ft3u42sWEX4
Мозги верхнего уровня - кластер из двух миникомпов с акселератором нейросетей, 3 видеокамеры.
Вот, например, отладка поиска, распознавания и захвата целей (в данном случае - танков) Окружение:raspberry pi3 + акселератор сетей neural computer stick + openCV + нейросеть tensorflow. Обертка - Python.
https://www.youtube.com/watch?v=YRYN_MjfWS4
Программа полностью выполнена восьмиклассником - нейросеть - распознавание танков, openCV - захват цели, имитируется пересчет дальности в масштабе модели.
При обучении сети пришлось срочным порядком "допроходить" к примеру, тензоры и градиенты - и ничего, ни один "кролик не пострадал"..cool
И да, в процессе всей этой "бодяги" пришлось изучать и теорию вероятности (в части, касающейся - собственно, веса в нейросетях, да и при сопровождении объектов в видеопотоке и т.д.), различные фильтры (пресловутый БПФ, Калмана и т.п. при обработке данных с множества датчиков), интерфейсы - CAN, Ethernet, Wi-Fi (тут, кстати, интересно - будет ещё взаимодействие с мелким коптером Syma, на который у нас, конечно, нет исходных кодов, так вот, пришлось научиться перехватывать управление и видеопоток по Wi-Ficool), АЦП, ЦАП, ШИМ и т.д. и т.п.
Из софта - линуксоидные операционки, для контроллера - ОС реального времени freeRTOS, "кучу" разных языков и пакетов разработки и проч. проч.
Как один из вариантов рассматривалось применение FPGA - матриц (потом отказались, но работать с ними научились).
При этом, я бы не сказал, что мы все "семи пядей во лбу"...smile



Редактировалось 1 раз(а). Последний 24.02.2019 07:54.
24.02.2019 09:57
не первый,не последний
горбатого могила исправит
24.02.2019 14:11
не первый, и далеко не последний
Да, общая беда в том, что слишком много "негорбатых диванных аналитегов", любящих "потереть за жизнь", но ничего путного не делающих..
25.02.2019 15:30
Лол-что2
Деметриус2003 тебя что в гугле забанили? Открою тебе один секрет - есть ещё "яндекс" и на крайний случай "майлру".

Набирай в поисковик графы и читай, потом набирай связность графов и читай.
Также любое непонятное слово выделяешь - правой кнопкой - копировать, далее в строку поиска правой кнопкой - вставить и Enther!
Никаких проблем нет.
25.02.2019 20:14
Высота 480 м
Тоже на базе сверточной сети пакета tensorflow, но несколько иной подход (каждый кадр - два прохода сети с полным программным циклом < 100 мс):
https://a.radikal.ru/a42/1902/be/6964e6257f3b.p
25.02.2019 20:43
хм
Цитата
alexo2
Тоже на базе сверточной сети пакета tensorflow, но несколько иной подход (каждый кадр - два прохода сети с полным программным циклом < 100 мс):
https://a.radikal.ru/a42/1902/be/6964e6257f3b.p

вы с кем разговариваете?
Извините, только зарегистрированные пользователи могут публиковать сообщения в этом форуме.

Кликните здесь, чтобы войти