В декартовой системе координатах gik равен скалярному произведению векторов, направленных по осям координат (они называются базисными). Каких вектроров? Всех! То есть берутся попарно все вектора (даже один и тот же вектор), при этом i и k — это номер векторов.
Базисные вектора перпендикулярны — поэтому их скалярное произведение равно нулю (если i не равно k). Для i = k мы умножаем вектор сам на себя, при этом получаем какое-то число. Если длинны всех базисных векторов равны 1, то это число (для i = k) равно 1.
То есть ответ на Ваш вопрос:
gik = 0, для i != k
gik = 1, для i == k
Например: g11 = g22 = g33 = 1, g12 = 0
Хорошо, а если у нас по оси X направлен базсиный вектор с длинной 2?
"Возьмем самый простой пример - линейное ядро, оно же скалярное умножение, оно же внутренний продукт."
Я хотел сказать, что эта фраза читается неоднозначно. Я ее понимаю как нет других ядер, кроме скалярного произведения. Более правильно, на мой взгляд: "Возьмем самый простой пример линейного ядра — скалярное произведение".
По Вашей ссылке на Википедию, скалярное произведение приводится как пример линейного ядра.
"Это и есть наша мера сходства. В контексте линейного ядра её сложно интерпретировать, ибо это проекция одного вектора на другой, умноженная на длину вектора, на который проецируется. Но чем больше само число (скаляр), тем более схожи вектора, и наоборот."
Я не предлагаю рассматривать cos(x) как пример линейного ядра. Я всего лишь считаю утверждение "но чем больше само число (скаляр), тем более схожи вектора, и наоборот" неверным. Это можно сказать о величине cos(угла между векторами x и y) = (x, y) / (|x| * |y|)
Так же, как я замечал ранее, использование () и <> для обозначения скалярного произведения немного запутывает
Я вообще не разбираюсь в теме статьи, но такое впечатления, что она нуждается в редактуре.
"Возьмем самый простой пример - линейное ядро, оно же скалярное умножение, оно же внутренний продукт."
Получается, что кроме скалярного произведения других линейных ядер быть не может.
"Это и есть наша мера сходства. В контексте линейного ядра её сложно интерпретировать, ибо это проекция одного вектора на другой, умноженная на длину вектора, на который проецируется. Но чем больше само число (скаляр), тем более схожи вектора, и наоборот."
Скорее это к косинусу угла между векторами относится. То есть скалярное произведение надо делить на произведение длинн векторов.
"Что сейчас произошло? Вместо того чтобы переносить наши данные в 3-мерное пространство и вычислять скалярное умножение, мы только что вычислили внутренний продукт в двумерном пространстве и затем возвели сумму в квадрат."
Скалярное произведения, скалярное умножение, внутренний продукт — оставьте во всей статье что-нибудь одно и дайте английский эквивалент: inner dot product.
В одиних формулах у Вас для скалярного произведения используются круглые скобки (.), в других угловые <.>.
"Разложение экспоненты через ряд Тейлора"
Сначала Вы приводите формулу с z и степнью n. Затем степень у Вас обозначается как r. Через z, обычно, обозначается комплексное число.
Надо как-то сделать акцент на том, что ядро — это оператор, который используется для определения сходства.
Вы верно подметили неоднозначность, связанную с читаемостью. Но, с моей точки зрения, следующий шаг следует делать в другом направлении — читаемость не так важна. Важнее простота внесения изменений. Я бы даже сказал комфортность внесения изменений — те чувства, которые мы испытываем при этом: страх, гнев, расслабленность, эйфорию. По моим наблюдениям, в код который менее читаемый (на первый взгляд, конечно) комфортнее вносить изменения, чем в более читаемый. Нам еще надо подумать над тем кто читает этот код и когда. Автор на следующий день? Автор через три месяца? Другой разработчик, который работает в той же команде? Разработчки с другой команды?
Насчет "динамического связывания ООП" (полиморфного поведения) полностью согласен. Такой подход лучше использовать в простых случаях или когда он хорошо ложится на шаблон проектирования, Template Method, например.
К примеру, во времена повального увленения waterfall народ старался придумать "серебрянную" пулю, которая бы позволила вот как-то так описать постановку задачи, чтобы можно было ее сделать за раз, генерить код и т.д.
Очень хорошо подобранная аналогия. Интересно было бы ее развить.
Я вообще считаю генерацию кода плохой идеей на длинной дистанции. Генерацию можно использовать как заготовку для последующей ручной доработки.
Я стараюсь везде давать ссылки на GitHub, StackOverflow, не только в резюме. Смысл этого в том, что я того же жду и от других. Категорически императив что ли.
Эти ограничения можно обойти, если использовать не дробь для выражения тангенса, а пару чисел: (числитель, знаменатель). Тогда прямой угол примет безопасное "значение" (0, 1)
Если (числитель, знаменатель), то значение прямого угла (1,0). Так?
Иногда настолько долго обрабатывается информация (право, кому нужен этот рефакторинг!)
Рефакторинг к этому прямого отношения не имеет (лишь опосредованное, через качество кода.
Сильные команды, красивый код, отлаженный и безупречный бэкенд…
Вот здесь надо аккуратно. Красивый код очень тонкий термин. Люди, нарпямую не связанные с с разработкой, обычно его понимают неправильно. И я считаю, что для команды разработки это самоцель. Остальное достигается успешным взаимодействием разработчиков с аналитиками (проектировщиками).
Я не сильно разбираюсь в математике. И вот что меня смутило (x^∆х-1)/∆х) — здесь x, это не тот же самый x, что в 2^x или 3^x. Может быть его другой буквой лучше обозначить: (a^∆х-1)/∆х). Или я не прав?
В декартовой системе координатах gik равен скалярному произведению векторов, направленных по осям координат (они называются базисными). Каких вектроров? Всех! То есть берутся попарно все вектора (даже один и тот же вектор), при этом i и k — это номер векторов.
Базисные вектора перпендикулярны — поэтому их скалярное произведение равно нулю (если i не равно k). Для i = k мы умножаем вектор сам на себя, при этом получаем какое-то число. Если длинны всех базисных векторов равны 1, то это число (для i = k) равно 1.
То есть ответ на Ваш вопрос:
gik = 0, для i != k
gik = 1, для i == k
Например: g11 = g22 = g33 = 1, g12 = 0
Хорошо, а если у нас по оси X направлен базсиный вектор с длинной 2?
Тогда
g11 = 4
осталные g22 = g33 = 1
gik = 0, для i != k
"Возьмем самый простой пример - линейное ядро, оно же скалярное умножение, оно же внутренний продукт."
Я хотел сказать, что эта фраза читается неоднозначно. Я ее понимаю как нет других ядер, кроме скалярного произведения. Более правильно, на мой взгляд: "Возьмем самый простой пример линейного ядра — скалярное произведение".
По Вашей ссылке на Википедию, скалярное произведение приводится как пример линейного ядра.
"Это и есть наша мера сходства. В контексте линейного ядра её сложно интерпретировать, ибо это проекция одного вектора на другой, умноженная на длину вектора, на который проецируется. Но чем больше само число (скаляр), тем более схожи вектора, и наоборот."
Я не предлагаю рассматривать cos(x) как пример линейного ядра. Я всего лишь считаю утверждение "но чем больше само число (скаляр), тем более схожи вектора, и наоборот" неверным. Это можно сказать о величине cos(угла между векторами x и y) = (x, y) / (|x| * |y|)
Так же, как я замечал ранее, использование () и <> для обозначения скалярного произведения немного запутывает
Спасибо за статью.
Я вообще не разбираюсь в теме статьи, но такое впечатления, что она нуждается в редактуре.
"Возьмем самый простой пример - линейное ядро, оно же скалярное умножение, оно же внутренний продукт."
Получается, что кроме скалярного произведения других линейных ядер быть не может.
"Это и есть наша мера сходства. В контексте линейного ядра её сложно интерпретировать, ибо это проекция одного вектора на другой, умноженная на длину вектора, на который проецируется. Но чем больше само число (скаляр), тем более схожи вектора, и наоборот."
Скорее это к косинусу угла между векторами относится. То есть скалярное произведение надо делить на произведение длинн векторов.
"Что сейчас произошло? Вместо того чтобы переносить наши данные в 3-мерное пространство и вычислять скалярное умножение, мы только что вычислили внутренний продукт в двумерном пространстве и затем возвели сумму в квадрат."
Скалярное произведения, скалярное умножение, внутренний продукт — оставьте во всей статье что-нибудь одно и дайте английский эквивалент: inner dot product.
В одиних формулах у Вас для скалярного произведения используются круглые скобки (.), в других угловые <.>.
"Разложение экспоненты через ряд Тейлора"
Сначала Вы приводите формулу с z и степнью n. Затем степень у Вас обозначается как r. Через z, обычно, обозначается комплексное число.
Надо как-то сделать акцент на том, что ядро — это оператор, который используется для определения сходства.
Вы верно подметили неоднозначность, связанную с читаемостью. Но, с моей точки зрения, следующий шаг следует делать в другом направлении — читаемость не так важна. Важнее простота внесения изменений. Я бы даже сказал комфортность внесения изменений — те чувства, которые мы испытываем при этом: страх, гнев, расслабленность, эйфорию. По моим наблюдениям, в код который менее читаемый (на первый взгляд, конечно) комфортнее вносить изменения, чем в более читаемый. Нам еще надо подумать над тем кто читает этот код и когда. Автор на следующий день? Автор через три месяца? Другой разработчик, который работает в той же команде? Разработчки с другой команды?
Насчет "динамического связывания ООП" (полиморфного поведения) полностью согласен. Такой подход лучше использовать в простых случаях или когда он хорошо ложится на шаблон проектирования, Template Method, например.
Очень хорошо подобранная аналогия. Интересно было бы ее развить.
Я вообще считаю генерацию кода плохой идеей на длинной дистанции. Генерацию можно использовать как заготовку для последующей ручной доработки.
О, спасибо. Думал, что вообще ерунда написана.
Я стараюсь везде давать ссылки на GitHub, StackOverflow, не только в резюме. Смысл этого в том, что я того же жду и от других. Категорически императив что ли.
Люди просты в контексте поиска партнера, а не в целом, конечно.
Тоже про паттерны, но только низкоуровневые паттерны кодирования. А вообще, со всеми Вашими комментариями согласен. Видно, что мастер ;)
Ведь так?
Если (числитель, знаменатель), то значение прямого угла (1,0). Так?
Здравствуйте. А какая альтернатива Spring Boot в данном случае, на Ваш взгляд?
Да, есть такое. Особенно когда неожиданно получаешь доступ к госзаказам, даже опосредованный.
Рефакторинг к этому прямого отношения не имеет (лишь опосредованное, через качество кода.
Вот здесь надо аккуратно. Красивый код очень тонкий термин. Люди, нарпямую не связанные с с разработкой, обычно его понимают неправильно. И я считаю, что для команды разработки это самоцель. Остальное достигается успешным взаимодействием разработчиков с аналитиками (проектировщиками).
Я не сильно разбираюсь в математике. И вот что меня смутило (x^∆х-1)/∆х) — здесь x, это не тот же самый x, что в 2^x или 3^x. Может быть его другой буквой лучше обозначить: (a^∆х-1)/∆х). Или я не прав?