Это не проблема, а довольно обычная вещь. Для этого нужно понять, как работает градиент приличный. Каждый раз, когда вы случайным образом инициализируете свои параметры, гипотеза начинает свое путешествие из случайного места. С каждой итерацией он обновляет параметры, так что функция стоимости сходится. В вашем случае, когда вы выполнили свой градиент прилично всего за 5 итераций, для другой инициализации он заканчивается слишком большим количеством разных результатов. Попробуйте более высокие итерации, вы увидите значительное сходство даже при различной инициализации. Если бы я мог использовать визуализацию, это было бы полезно для вас.
Поскольку JSON является подмножеством фактического синтаксиса литерала JavaScript. Для простоты в реализации синтаксических анализаторов JSON, двойные кавычки всегда требуются вокруг строк, и поскольку ключи в JSON являются строками, они требуются там.
Не весь легальный JavaScript является легальным JSON. В то время как можно определить литералы объектов в JavaScript без кавычек, если Вы хотите совместимый JSON, Вы испытываете необходимость, чтобы вставить их.
Поскольку, делая так, Вы стараетесь не использовать, ошибкой, зарезервированным словом JavaScript, как "делают", например. Используя строку нотация сохранила Вас на безопасной стороне.
Если схеме синтаксиса по json.org нужно верить, bareword имена свойства нестандартны. На каком количестве браузеров Вы запускали свои тесты?
Кроме ухода от зарезервированных слов можно на самом деле использовать любые символы на имена свойства - включая пробелы, двоеточия...
Едва ли уверенный, почему Вы сделали бы это. Я предпочитаю использовать нормальную "объектную" нотацию.