LINUX.ORG.RU

Что такое тензор?

 


5

3

Читал-читал... Тензор - он всё. Базовый «пакет» данных, к операциями над которым сводятся любые востребованные в области ML вычисления?

Вектор, матрица и даже скаляр - частные случаи тензора.

А можно как-то более простыми словами для дегенератов объяснить, что это такое и в чём абстрактная красота и универсальность понятия?

Недаром ведь «поток тензоров» - TensorFlow...

Ответ на: комментарий от quickquest

Инвариантность - это свойство, а линейность - это определение.

А уж как вы нужность меряете - дело ваше.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Инвариантность - это свойство, а линейность - это определение.

Вообще-то все наоборот. Сперва фиксируется инвариантность, и потом уже (чисто случайно) оказывается, что преобразование линейно. Без предположения об инвариантности, вывести линейность не выйдет. А вот если тебе дано линейное преобразование, то оно совсем не факт, что будет инвариантно.

anonymous
()
Ответ на: комментарий от anonymous

Ты путаешь тензор как самостоятельную сущность и те тензоры, которые имеют физический смысл.

Абстрактному тензору ваша инвариантность не интересна. Это самодостаточный математический объект и ему интересно векторное пространство, для которого он определен как полилинейное отображение, и только.

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

Примерно как есть производная (скорость), а есть скорость света в вакууме. Одно - математическое понятие, а другое - физическая величина.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от alpha

Абстрактному тензору ваша инвариантность не интересна.

Она содержится в его определении.

Это самодостаточный математический объект и ему интересно векторное пространство, для которого он определен как полилинейное отображение, и только.

Чтобы быть полилинейным отображением (и вообще просто отображением) - надо быть инвариантным. Я могу определить «отображение» (в кавычках), которое будет задано так, что работает по-разному в разных координатах. Оно не будет отображением в строгом математическом смысле (это будет семейство отображений, для каждого базиса - свое). Так что, когда ты говоришь, что тензор - это отображение (которое блаблабла), то факт инвариантности уже оказывается зафиксирован (пусть и неявно). Не может быть неинвариантного отображения.

anonymous
()

Я думаю, моя работа по развенчиванию математической пропаганды закончена. Математики сами неплохо справляются.

Читателю же предлагается расслабится и перенестись в уютную атмосферу средневековья, пока математики выясняют количество ангелов, способных поместиться на кончике иглы.

anonymous
()
Ответ на: комментарий от Norgat

То есть, те тензоры, что в физике, это просто «каркас» для чисел, которые обозначают собой некие численные свойства типа энергии, импульса, и т.д.? А когда говорят, что для какой-то теории нужны дополнительные измерения, это значит, что такие вот числа некуда запихать?

Deleted
()
Ответ на: комментарий от anonymous

Если глянешь выше то увидишь что для определения тензора координаты не нужны. Есть линейное пространство, есть его элементы, есть отображения.

Наличие возможности координатного представления и правил согласования с ним - это следствие линейности. Для самого тензора как объекта вопроса об инвариантности в принципе не стоит, поскольку про координаты он ничего не знает. Это уже твоя проблема, что при использовании этого объекта ты его пытаешься как-то приземлить в R^n и при этом приземлении возникают неоднозначности.

alpha ★★★★★
()
Ответ на: комментарий от Deleted

У тензора два типа входных параметров: векторы и линейные функции. И тех и тех может быть произвольное число.

Поэтому и размерность его двумя числами задается: первое - сколько векторов, второе - сколько функций (ковекторов).

Поэтому например скалярное произведение двух векторов - это тензор ранга (2,0): два вектора на вход, число на выход.

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

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от Deleted

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

Norgat ★★★★★
()
Ответ на: комментарий от alpha

Проблема в том что когда мы работаем с конкретными примерами, а это обычно значит с простыми вещественными пространствами, то и вектора и функции - все записываются тем самым «кортежем» из n чисел.

И если еще и скалярное произведение тривиально, то линейные функции и векторы можно отождествлять. И в итоге ты получаешь три страницы координатной записи и умножения матриц, а проследить где была функция, где вектор, где само пространство, а где сопряженое, где матрица оператора, а где скалярное произведение и не стал ли ты уже умножать яблоки на апельсины становится не так просто.

Но это всё пожалуй только практикой лечится.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от alpha

линейная функция это собственно тоже тензор и векторы тоже

и даже небо, и даже Аллах

lovesan ★★☆
()
Ответ на: комментарий от Deleted

Вроде всё понятно))

Задавили ребенка авторитетом. Теперь вырастет тряпкой без собественной позиции.

anonymous
()
Ответ на: комментарий от Norgat

Я тоже против того, чтобы давать точные определения тем, кому это не нужно. Но давать ошибочные представления тоже не нужно.

Повторюсь, не неточные, а ошибочные.

Octagon ★
()
Ответ на: комментарий от Octagon

Я тоже против того, чтобы давать точные определения тем, кому это не нужно.

Точные определения возможны только в формальных языках. Все остальное средневековое словоблудие.

anonymous
()
Ответ на: комментарий от Octagon

Посмотри ссылку на TensorFlow доку, если человек увидел тензор из TF, а не из физики\математики, то я написал именно то, что ему нужно.

Norgat ★★★★★
()
Ответ на: комментарий от Norgat

Слушай, да, я неправ.

Tensorflow tensor и тензор - разные вещи, все таки. Не знал.

Octagon ★
()
Ответ на: комментарий от anonymous

Потому что нет тут математиков(разве что альфа). Они делом заняты, а не твоей форумной болтовнёй.

anonymous
()
Ответ на: комментарий от alpha

Вау. Всё бы так объясняли, и, может быть, тогда люди перестали бы бояться этой вашей математики.

anonymous
()
Ответ на: комментарий от anonymous

Потому что нет тут математиков(разве что альфа).

Его еще в предыдущем треде про математику слили. Этот вообще стихами отвечал.

Они делом заняты, а не твоей форумной болтовнёй.

Это вообще-то площадка для программистов, созданная программистами. И мы тут общаемся при помощи точных формальных языков. И когда кто-то внезапно начинает изливать потоки бессвязного бреда, это немного шокирует.

anonymous
()
Ответ на: комментарий от anonymous

Ну, во-первых, Неадекватный Анонимус тут в чем-то прав - это всё-таки словоблудие.

Оно полезное, помогает вырабатывать правильную интуицию, но без подкрепления настоящей практикой остается слишком поверхностным.

То есть тут хорошо, поговорили, но дальше надо сесть и считать примеры вычисления значений конкретных тензоров на конкретных данных, и потом свертки, и дуальные вектора.. Да банально матрицы четыре на четыре поперемножать и пообращать недельку.

А во-вторых, в хороших ВУЗах хорошие преподаватели так и объясняют. И когда тут заходит порой спор на тему нужен ли университет или всё можно по книжкам изучать, то вот тут и разница: Университет - это место, где много и долго «словоблудят» друг с другом на тему того что строго изложено в книжках. И этим ценен.

Так что если занимаетесь самообразованием, то кроме книжек стоит какой-то аналог курилки с тематическими дискуссиями искать.

alpha ★★★★★
()
Ответ на: комментарий от alpha

У программистов никакого словоблуда нет ни в каком виде. Везде код. Все строго и формально, стройно и красиво.

Пока математики носятся с идиотской ZFC, никакие «строгие» учебники не помогут. Пора бы уже сваливать из «рая», созданного Кантором.

anonymous
()
Ответ на: комментарий от alpha

Кстати, это тоже не то, чтобы правильно.

Скалярное произведение - это внезапно тензор ранга (0;2), а тензор ранга (1;1) - это вообще линейный оператор (поворот, например).

Так что нет, не вяжется.

Octagon ★
()

Посмотрел что тут пишут, скажу так, понять что такое тензор можно из происхождения этого исчесления.

Тензорное исчесление первоначально разрабатывалось исключительно для описания упругих свойств кристаллов.
Специфика в том, что у кристалла упругость и твёрдость зависят от направления приложенного усилия относительно кристалической решётки.
И вот тензор это какая-то математическая штука, судя по всему векторная, которая эти зависящие от направления свойства способна описать единым и непротиаоречиаым образом, без разрывов потока мыслей и всяческих костылей.

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от Octagon

Скалярное произведение - это внезапно тензор ранга (0;2),

0,2 он или 2,0 это вопрос какую размерность первой называть. Раз уж я сначала векторы первыми параметрами называла, у меня получился 2,0. В стандартном определении другой порядок.

а тензор ранга (1;1) - это вообще линейный оператор (поворот, например).

А тут никакой ошибки нет.

да, тензор 1,1 - это оператор, но в то же время именно он же и есть отображение пары (вектор, функция) в числа. Это эквивалентные сущности.

На радость анонимусу, пара формул:

Вот есть оператор из векторного пространства в него же:

 A: вектор u -> вектор v
И есть тензор:
 T: (вектор u, функция f) -> число t 
Так вот каждому оператору можно поставить в соответствие тензор. Просто берем и определяем:
Для всех u,f пусть t(u,f) = f(A(u))
Ну и обратно для каждого такого тензора T можно найти такой оператор A.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Раз уж я сначала векторы первыми параметрами называла, у меня получился 2,0.

Если вектор - тензор (1;0), то скалярное произведение (как любая билинейная форма) - (0;2). Проверить нетрудно - достаточно посмотреть, как преобразовывается матрица Грама при смене координат.

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

Е-мае.

Линейный оператор отображает вектор в вектор.

Octagon ★
()
Ответ на: комментарий от alpha

Так вот каждому оператору можно поставить в соответствие тензор. Просто берем и определяем:

Фигня какая-то. Тензор (1;1) не может из вектора сделать не вектор. Зачем f?

Octagon ★
()
Ответ на: комментарий от Octagon

Любой тензор - это отображение N векторов и M ковекторов (ну точнее N ковекторов и M векторов) в числа.

Это общее определение тензора произвольного ранга. Оно верно и для 0,1 и для 1,1 и для 2,0 и для 15,42.

Однако далее у нас есть развитие этой идеи.

Если достаточно долго смотреть на определение 1,1 тензора

T: (вектор u, функция f) -> число t = t(u, f)
то можно заметить, что при любом фиксированном u наш тензор превращается в функцию
t_u: функция f -> число t_u(f) = t(u, f)
Заметим что t_u - это линейная функция на пространстве линейных функций.

Тогда можно посмотреть ещё чуть-чуть и понять что наш тензор T если его рассматривать как функцию только на векторах имеет вид

T: вектор u -> функция на линейных функциях t_u = t(u, .)
Для программеров: t_u = lambda f: t(u, f)

Но фишка в том что пространство линейных функций на линейных функциях канонически изоморфно исходному векторному пространству. Так что t_u - это одновременно и просто вектор.

Так что тензор типа 1,1 - если смотреть на него как на функцию двух переменных то он отображает пару (вектор, функция) в число. А если смотреть на него как на функцию только первого параметра, то он отображает вектор в «ко-ковектор», и слава богу что эти два ко аннигилируют и дают нам просто вектор в итоге.

alpha ★★★★★
()
Ответ на: комментарий от alpha

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

alpha ★★★★★
()
Ответ на: комментарий от alpha

Ну, во-первых, Неадекватный Анонимус тут в чем-то прав - это всё-таки словоблудие.

Оно полезное, помогает вырабатывать правильную интуицию, но без подкрепления настоящей практикой остается слишком поверхностным.

Может и так, но я, читая ваше объяснение, представлял в голове код на С++ - это и есть моя практика.

anonymous
()
Ответ на: комментарий от anonymous

Причем это хорошо иллюстрируется данным тредом. Каждый математик что-то свое лепечет, и друг друга они понят не могут.

Программисты бы уже давно код повыкатывали.

… и херами друг друга обложили. Достаточно зайти в любой срач в Development. Кода много, толку мало. У каждого свой божок.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

и херами друг друга обложили.

Нихера. Кодом как раз все споры успешно завершаются. И тут у нас есть несколько показательных примеров.

Анонiмус (не путать с анонимусом), который возомнил себя крутым философом, математиком и программистом, флудил темами по несколько раз в день, и на запрос подкрепить свои изливания кодом, решил запилить модель солнечной системы. Но не осилил даже круг нарисовать. А пошел бы в математики, был бы сейчас каким-нибудь важным профессором.

Другой называет себя Царем всем программистов, хвастается идеальными скиллами и регулярно покрывает ЛОР простынями о собственном величии. Но как только дело доходит до кода, сразу становится паенькой и вежливо просит программистов не пинать ногами по лицу. Что примечательно, математика у нас тоже самозванная «царица» наук.

Или возьми Лавсана. Тоже много писал про лисп в геймдеве, и таки осилил нарисовать треугольник. Сразу видно, что далеко продвинутее.

О таком математики мечтали веками. У них хер поймешь - то ли идиот, то ли сумашедший, то ли мошенник. Каждый балаболит, как хочет, и никак это балабольство не проверить.

anonymous
()
Ответ на: комментарий от Virtuos86

Не надо слушать анонимуса.

У него равно далекие от здравого смысла представления о беседах как программистов, так и математиков.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Для самого тензора как объекта вопроса об инвариантности в принципе не стоит, поскольку про координаты он ничего не знает.

И это и есть инвариантность. Содержащаяся в определении.

Это уже твоя проблема, что при использовании этого объекта ты его пытаешься как-то приземлить в R^n и при этом приземлении возникают неоднозначности.

Никаких неоднозначностей не возникает. Если у вас есть объект, то он _гарантированно_ инвариантен. Неинвариантных объектов не существует, их нельзя определить «снаружи» пространства, т.к. обязательно должна быть привязка к координатам. Например, о векторе скорости вне координатной системы говорить можно. F вот о векторе угловой скорости - уже нет. Нету такого объекта как целого, он в разный координатных системах - свой.

anonymous
()
Ответ на: комментарий от alpha

а проследить где была функция, где вектор, где само пространство, а где сопряженое, где матрица оператора, а где скалярное произведение и не стал ли ты уже умножать яблоки на апельсины становится не так просто.

И, что самое главное, совершенно не нужно. Тензорное исчисление ровным счетом для того и было создано, чтобы не следить за подобными вещами, а сам формализм намеренно сделан таким, чтобы стереть все различия и позволять свободно теребить индексы, не заморачиваясь, над каким именно объектом ты проводишь операции.

anonymous
()
Ответ на: комментарий от alpha

У него равно далекие от здравого смысла представления о беседах как программистов, так и математиков.

Никаких предсталений, только факты. Беседу математиков мы можем наблюдать в этом треде. Про Царя можно проверить в соседнем треде. Лавсан тут уже отметился, может показать треугольник.

anonymous
()
Ответ на: комментарий от alpha

Но фишка в том что пространство линейных функций на линейных функциях канонически изоморфно исходному векторному пространству.

В конечномерном случае.

anonymous
()
Ответ на: комментарий от anonymous

И это и есть инвариантность. Содержащаяся в определении.

Если так рассуждать, то инвариантность содержится в определении вектора и векторного пространства.

Только это уже пустые рассуждения на самом деле.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Мечтай.

Если вы диленанты, то надо вообще в тряпочку помалкивать, а не «беседы» разводить.

anonymous
()
Ответ на: комментарий от anonymous

.. и за это тензорные исчисление любят физики и не уважают чистые математики.

Потому что да, можно нырнуть в формализм и забыть о чем была речь.

Когда задача ставится как «посчитать некоторую величину» это удобно. А когда задача исследовательская - нужно понимать где ты и что делаешь. Чтобы не получилось так что ты неделю высчитываешь тензор кривизны в каких-то диких координатах, когда давно понятно по другим признакам что твое пространство - сфера.

Во французской математической школе например классический тензорный формализм вообще не используют. Никогда не пишут тензор кривизны как R^i_jkl, только R(X,Y,Z)(W).

У меня по этому поводу было очень забавное общение с рецензентами.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Во французской математической школе например классический тензорный формализм вообще не используют.

Как я и предсказывал, пошли ссылки на местечковых авторитетов.

anonymous
()
Ответ на: комментарий от Twissel

А ты ваще чьих будешь?

Программист. Мы за современные формальные языки и международные стандарты.

Мы против пережитков средневековья, когда нужно совершить сходку во французкую школу, где авторитеты посвятят тебя в математики через традиционную процедуру битья веслом по жопе.

anonymous
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.