Як обчислити кількість функцій на основі роздільної здатності зображення?


18

Просто покрита нелінійна Гіпотеза Ендрю Нг з Neural Netowrks, і у нас було питання множинного вибору для визначення кількості функцій для зображення дозволу 100x100 з grescale інтенсивності.

І відповідь була 50 мільйонів, х10 75107

Однак раніше для 50х50 пікселів зображення сірого масштабу. кількість функцій - 50x50 (2500)

Чому це було б x замість ?10 7 10 , 000510710,000

Однак він каже, що включає всі квадратичні терміни ( ) як функціїxixj

Припустимо, ви навчитеся розпізнавати машини за зображеннями розміром 100 × 100 пікселів (масштаб сірого, а не RGB). Нехай функції мають значення інтенсивності пікселів. Якщо ви тренуєте логістичну регресію, включаючи всі квадратичні терміни ( ) як функції, про те, скільки функцій у вас буде?xixj

і на попередньому слайді про 100x100, що квадратичні функції ( x ) = 3 мільйони функцій, але я все одно не можу покласти пальцем на з'єднання.x jxixj

Відповіді:


16

Можливо, простіший випадок зробить все зрозумілішими. Скажімо, ми обираємо вибірку пікселів 1x2 замість 100x100.

Зразки пікселів із зображення

+----+----+
| x1 | x2 |
+----+----+

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

Скажімо, ми вирішуємо побудувати наші поліноми, включивши всі інтенсивності пікселів і всі можливі кратні, які можуть бути сформовані з них.

Оскільки наша матриця мала, давайте перерахуємо їх:

x1, x2, x12, x22, x1×x2, x2×x1

Інтерпретуючи описану вище послідовність ознак, можна побачити, що існує закономірність. Перші два терміни, група 1, - це особливості, що складаються лише з їх інтенсивності пікселів. Наступні два терміни після цього, група 2, - це ознаки, що складаються з квадрата їх інтенсивності. Останні два терміни, група 3, - це добуток усіх комбінацій попарно (двох) пікселів інтенсивності.

група 1:x1, x2

група 2:x12, x22

група 3:x1×x2, x2×x1

Але зачекайте, є проблема. Якщо ви подивитесь на 3 групи в послідовності ( та ), ви помітите, що вони рівні. Згадайте наш приклад житла. Уявіть, що для одного будинку є дві функції x1 = квадратний кадр та x2 = квадратний кадр ... Це не має сенсу! Гаразд, тому нам потрібно позбутися функції дублювання, давайте скажемо довільно . Тепер ми можемо переписати список трьох функцій групи як:x1×x2x2×x1x2×x1

група 3:x1×x2

Підраховуємо функції у всіх трьох групах і отримуємо 5.

Але це іграшковий приклад. Давайте отримаємо загальну формулу для обчислення кількості ознак. Давайте використаємо наші вихідні групи функцій як вихідну точку.

sizegroup1+sizegroup2+sizegroup3=m×n+m×n+m×n=3×m×n

Ах! Але нам довелося позбутися продубльованого продукту у групі 3.

Тому для правильного підрахунку функцій для групи 3 нам знадобиться спосіб підрахунку всіх унікальних парних продуктів у матриці. Що можна зробити за допомогою біноміального коефіцієнта, що є методом підрахунку всіх можливих унікальних підгруп розміром k з рівної або більшої групи розмірів n. Тож для правильного підрахунку ознак у групі 3 обчислюємо .C(m×n,2)

Отже, наша загальна формула буде:

m×n+m×n+C(m×n,2)=2m×n+C(m×n,2)

Давайте використовувати його для обчислення кількості функцій у нашому прикладі іграшок:

2×1×2+C(1×2,2)=4+1=5

Це воно!


2
Бажаю, щоб це пояснення було дано на лекції!
Ян Уокер-Спербер

Мені цікаво, як ми повинні знати це в ході, не пояснюючи це
Мохаммед Нурелдін,

6

Якщо ви використовуєте всі лінійні та квадратичні функції, загальна кількість повинна бути:

100*100 + 100*100 + C(100*100,2) = 50015000
10000   + 10000   + 49995000     = 50015000
xi         xi^2       xixj

1
Чи можете ви пояснити це трохи далі? ти кажеш, xi + xi ^ 2 + xixi? Чи xi = 100, а xj = 100? чому xi і xi ^ 2 обидва - 100 * 100? Що таке С (100 * 100,2)?
Янковічі

4
(1) усього 100 * 100 пікселів, якщо ви використовуєте інтенсивність як функції, то буде 100 * 100 функцій загалом, це xi; і (ii) ви також можете використовувати щільність потужності як функцію, тобто (xi, xi) або xi. ^ 2, все ще 100 * 100 в цілому; нарешті (iii) якщо ви використовуєте кореляції між двома пікселями, усього буде C пар пікселів, це (xi, xj), C - комбінація у математиці ( mathworld.wolfram.com/Combination.html )
lennon310

Дякую, останнє питання - чому xi = xi ^ 2 в цьому контексті?
Янковічі

Я використовував xi для представлення одного пікселя, а xi ^ 2 означає використання пар одного і того ж пікселя (xi, xi). Кількість одного пікселя однакова для пар одного і того ж пікселя. Це не має нічого спільного з інтенсивністю пікселів. Вибачте за непорозуміння.
lennon310

Це ж питання через кілька років. Чи не слід враховувати також можливі значення інтенсивності (від 0 до 255)?
albus_c

0

Ідея ( ) / 2 також може працювати для отримання квадратичних ознак. Отже, якщо n = 2500, то ми знаємо, що x (i) = 2500 і заміщення x у формулі дасть 50 мільйонівx2


2
Я отримую мільйони, а не мільйонів. 25002/2350
качан

0

@whuber 50 мільйонів приходять, коли у вас є зображення 100 * 100 пікселів. де квадрат (100 * 100) = 100000000 (10 мільйонів) і квадрат (100 * 100) / 2 = 5 мільйонів. Сподіваюся, що це відповідає.


Це відповідь на коментар, а не відповідь на це питання.
Майкл Р. Черник
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.