How to unset _none option inside field collection?
You're modifying a local variable. You need

$field_collection = &amp;$form['field_field_collection'][LANGUAGE_NONE];


or

unset($form['field_field_collection'][LANGUAGE_NONE][$delta]['field_name'][LANGUAGE_NONE]['#options']['_none']);