Тому я намагаюся зрозуміти нейронні мережі з моменту, коли я натрапив на блог Адама Гейтгея про машинне навчання. Я прочитав скільки завгодно з цього питання (що можу зрозуміти) і вважаю, що розумію всі широкі поняття та деякі дії (незважаючи на те, що дуже слабкий у математиці), нейрони, синапси, ваги, функції витрат, зворотне розповсюдження і т. д. Однак мені не вдалося розібратися, як перетворити проблеми реального світу в рішення нейронної мережі.
Враховуючи приклад, Адам Гейтгей наводить як приклад використання систему прогнозування цін на житло, де надано набір даних, що містить кількість спалень , пл. футів , сусідства та ціни продажу Ви можете навчити нейронну мережу, щоб мати можливість передбачити ціну будинку. Однак він не може реалізувати можливе рішення в коді. Найближчим, який він отримує, на прикладі, є основна функція, що демонструє, як ви реалізуєте ваги:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
Інші ресурси, здається, більше зосереджуються на математиці, і єдиний приклад базового коду, який я міг би зрозуміти (тобто це не деякі співи, всі коди класифікації танцювальних зображень) - це реалізація, яка навчає нейронну мережу бути XOR ворота, які займаються лише в 1 та 0.
Отже, в моїх знаннях є розрив, який я просто не можу подолати. Якщо ми повернемося до проблеми прогнозування цін на житло , як зробити дані, придатними для подачі в нейронну мережу? Наприклад:
- Кількість спалень: 3
- Пл. футів: 2000
- Район: Нормалтаун
- Продажна ціна: 250 000 доларів
Чи можете ви просто подати 3 і 2000 безпосередньо в нейронну мережу, оскільки вони є числами? Або вам потрібно перетворити їх на щось інше? Точно так само, як щодо значення Normaltown , це рядка, як ви перейдете до перекладу його у значення, яке нейронна мережа може зрозуміти? Чи можете ви просто вибрати число, наприклад, індекс, якщо воно є послідовним у всіх даних?
Більшість прикладів нейронної мережі, які я бачив, числа, що проходять між шарами, становлять або 0 до 1, або -1 до 1. Отже, наприкінці обробки, як ви перетворюєте вихідне значення на щось корисне, наприклад, 185 000 доларів ?
Я знаю, що приклад прогнозування цін на житло, мабуть, не є особливо корисною проблемою, враховуючи те, що він був значно спрощений до трьох даних. Але я просто відчуваю, що якби мені вдалося перебороти цю перешкоду і написати надзвичайно базовий додаток, який тренується за допомогою даних псевдо реального життя та виплює відповідь з реального життя псевдо, ніж я зламаю її задню частину і зможу вдарити далі і поглиблюємось далі в машинному навчанні.