Актуальные темы
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Как человек с образованием в области компьютерных наук, я был очень озадачен, когда впервые столкнулся с математиками, настаивающими на том, что тензор не является матрицей. Потому что они оба явно являются многомерными массивами. Но потом я понял... математики всегда используют строго типизированные языки в своих мыслях!
Для компьютерного ученого структура, функции, интерфейс и ограничения все четко разделены и взаимозаменяемы. Тензор — это матрица, которую вы рассматриваете как тензор. Вы можете их смешивать, класс — это набор всех четырех, но это не обязательно.
Когда вам говорят, что векторы не являются списками чисел, это потому, что они научили себя быть проверяющими типы для языков логики с жесткой типизацией и жадной оценкой. Математики запускают в своих головах нечто вроде магического обученного проверяющего типы.
Люди из области компьютерных наук в основном мыслят на lisp и/или C, в зависимости от того, хотим ли мы быть интерпретатором или компьютером. Если мы действительно запускаем строго типизированный ментальный симулятор, он накладывается сверху. Даже Haskell отделяет объявления типов от реализации.
Но математика выполняется только с помощью сигнатур типов! Они делают всё с помощью сильно типизированных макросов! Это как предельный случай типов Хиндли–Милнера, если бы проводили спекулятивное расширение для поиска лучших сжатий. Это позволяет математикам выполнять оптимизированную компиляцию программ, абстрактно.
Теперь, когда я занимаюсь более реальной математикой, я вижу силу этого подхода. Но я думаю, что сила подхода к компьютерным наукам недооценена математиками. Потому что мудрость компьютерных наук заключается в том, что тензор — это матрица, но матрица не является тензором. Переменные — это все, во что вы можете их привести.
Математики знают о преобразованиях, но называют их забавными именами, такими как "морфизмы". И они признают, под давлением, что если у вас есть соответствующее преобразование, вы можете использовать вектор как вращение соответствующего измерения.
Но они скажут, что вы не используете вектор как вращение, вы вывели бивектор под всякую ерунду. Это правда, если вы супер HM типизатор Prolog. Это не правда, если вы компилятор, интерпретатор или компьютер.
В любом случае, я все равно устраиваю споры с математиками по этому поводу, потому что это так нелепо отрицать, что duck-typing работает, но они правы, это все равно требует унификации типов.
@St_Rev И нет, тензор является подтипом матрицы, а не наоборот. Матрица — это более общий объект, тензоры должны подчиняться более строгим ограничениям.
@SokobanHero Итак, поскольку многомерная карта всегда может быть реализована как матрица (хотя технически это гиперматрица, потому что, похоже, люди используют матрицу только для обозначения двумерного n-мерного массива) и наоборот в некотором пространстве, я думаю, что разумно идти в любом направлении.
20,73K
Топ
Рейтинг
Избранное

