Pull to refresh
10
0
Андрей Константинов @andruekonst

Пользователь

Send message
Сравнения сами по себе не обязательно сбивают с толку предсказание переходов. Если требуется только результат сравнения (как, например, в isalpha в musl), то инструкция перехода не нужна: вместо этого останется только cmp + добавится вытаскивание значений ZF/SF из регистра с флагами. Но зависит от реализации компилятора, конечно.
Повышение разрешения – вполне типичная обратная задача, при решении которой мы страдаем от слишком большого (бесконечного) числа допустимых решений, а не от их отсутствия.

Почти невозможно получить изображение, совпадающее с оригиналом высокого разрешения, имея только один снимок без дополнительной информации. Какое-то правдоподобное изображение 320x240 можно получить и из одного пикселя: например, если заранее понизить разрешение большого числа картинок до одного пикселя, среди этих значений найти ближайшее ко входу и взять в качестве результата соответствующее изображение исходного разрешения.

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

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

Пример как поможет GAN
Пусть есть сеть G, которая по какому-то входному вектору x генерирует реалистичное лицо, сеть D оценивающая реалистичность изображения и дифференцируемая операция понижения разрешения F(y). Составим цепочку: xG(x)F(G(x)).
Если изображение одно, то ищем оптимальный x* (например, градиентным спуском), чтобы минимизировать различие между F(G(x)) и исходным изображением, а также максимизировать реалистичность, то есть оценку D(x). С различными начальными приближениями можно получать различные x, по ним генерировать реалистичные изображения G(x), соответствующие условиям.
Важно, что таким образом мы значительно сузили пространство поиска среди изображений до реалистичных (действительно ли максимизация D гарантирует реалистичность – отдельный для каждого метода вопрос), поэтому искажений скорей всего не будет.
Когда доступны несколько снимков объекта, можно искать набор близких друг к другу x_i, таких, чтобы каждый x_i минимизировал различие со своим снимком – это поможет ещё больше сузить пространство поиска и более точно восстановить каждое изображение.
Вы видимо перепутали: Бах написал 48 клавирных пьес, назвав сборник «Хорошо темперированный клавир», однако к изобретению темперированного строя и собственно клавира он отношения не имел.
Полезность не нулевая, если в будущем докажут справедливость недоказанных на данный момент посылок. В целом такие работы могут «набивать цену» посылкам, объясняя какая практическая польза будет от доказательства.

Есть и более конкретные примеры
В теории алгоритмов существует много теорем вида «наличие полиномиального алгоритма для задачи распознавания влечёт наличие полиномиального алгоритма для оптимизационной задачи». Как правило, такие теоремы имеют конструктивные доказательства, которые полезны и без полиномиальных алгоритмов для задач распознавания.
Наивная сборка строки через числа работает быстрее наивной сборки через slice:
function mathPower (num){
    if (num < 999)
        return num;
    return mathPower(~~(num / 1000)) + "'"
           + ("00"+(~~(num % 1000))).substr(-3,3);
}

jsfiddle.net/5nzL3yLo
А можно просто
перед https поставить пробел
Обычная опечатка. Очевидно «в» пропущено
<joke>
Просто это купленный комментарий
</joke>
Вместо того, чтобы препираться, лучше бы попробовали запустить
 {key: "value"}
без присваивания.
Прочитав комментарии к этой ветке, я понял, что умею читать сквозь кисть, ибо оторвать руку от лица у меня не получалось. Это просто ужасно. Факт очевидный, вместо того, чтобы писать бред, достаточно было вбить одну строчку в любой поисковик…
Ну, раз уж вы придрались к комментарию, то и я придерусь к вашему: как минимум, атомарный водород и инертные газы не являются химическими соединениями, так что вся окружающая вселенная ни коим образом не состоит целиком и полностью из химических соединений. Хотя, конечно, вы правы, это ошибка, только пользы от этой придирки нет никакой, собственно, как и от моей
Они разными вещами занимаются, если что
Лучше добавили бы видео в один из прошлых постов, либо написали бы к ним коммент. Это совсем не похоже на полноценную статью — больше на рекламу, простите.
Небольшой совет
Промотайте в конец
Может быть за «добиватся»?
Скачиваете на Android/IOS, входите в него, нажимаете на кнопочку на сайте, удаляете приложение с Android/IOS, радуетесь. У меня 5 минут назад сработало.
«В социальных сетях я веду себя очень осторожно, добавляю только тех людей, которые действительно хотят со мной общаться: ставят лайки к моим постам и пишут комментарии, пусть даже на другом языке. А к чему эти предосторожности, спросите вы? И я так считал, пока один из знакомых, который не ставил лайков, написал мне, что надо разбить жёсткий диск! Вы представляете, разбить! После этого случая я стал более бдительным. Кстати, насчёт бдительности, это отразилось и на повседневной жизни с использованием интернета: теперь я не пропускаю ни одной возможности похудеть, пройти тест на IQ, или увеличить мышечную массу!»
В C++ будет 7, а в C# — 6, так что вы наполовину правы
Если название тэга в переменной, проблем возникнуть не должно: Voyeur.div[tagVariable]

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity